本文整理汇总了C++中Paddle::getCenterAngle方法的典型用法代码示例。如果您正苦于以下问题:C++ Paddle::getCenterAngle方法的具体用法?C++ Paddle::getCenterAngle怎么用?C++ Paddle::getCenterAngle使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Paddle
的用法示例。
在下文中一共展示了Paddle::getCenterAngle方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: isCollided
bool Ball::isCollided(Paddle &paddle) {
const sf::Vector2f polarPos = toPolar(getPosition() - Settings::getScreenCenter());
const float ballRad = ((sf::CircleShape*)shape)->getRadius();
const float closeRad = 0.01 * Settings::getZoneRadius();
if ((polarPos.x + ballRad) > (paddle.getRadius() - closeRad)) {
const float ballRadAngle = toPolar(sf::Vector2f(-ballRad, polarPos.x)).y;
const float closeAngle = 1.0;
const float paddleCenter = paddle.getCenterAngle();
if ( ((polarPos.y + ballRadAngle) > (paddleCenter - paddle.getAngularLength() - closeAngle)) &&
((polarPos.y - ballRadAngle) < (paddleCenter + paddle.getAngularLength() + closeAngle)) ) {
// ball is close to paddle, so bother to do checks
const int NUM_POINTS = ((sf::CircleShape*)shape)->getPointCount();
for (int i = 0; i<NUM_POINTS; i++) {
// check for every point on the circle shape, in global coords
sf::Vector2f localPoint = ((sf::CircleShape*)shape)->getPoint(i);
sf::Transform transform = shape->getTransform();
sf::Vector2f globalPoint = transform.transformPoint(localPoint);
if (paddle.isWithin(globalPoint)) {
return true;
}
}
}
}
return false;
}