如何将精灵的位置设置到屏幕的中心

时间:2013-10-10 11:05:13

标签: c++ sfml

我有一些关于我一直在努力的乒乓球游戏的代码: 代码示例显示当球击中窗口的底部时,球重置到窗口的中间。我想要实现的是,我希望能够添加一些代码,这样如果球击中窗口的顶部,球将重置回中间。 谁能帮我这个?

//...

// IF BALL GETS PAST PLAYER PADDLE AND TOUCHES BOTTOM OF SCREEN
if (GetPosition().y - GetHeight()/2 <= 0)
{
    _angle = 180 - _angle;
    moveByY = -moveByY;
}

if (GetPosition().y + GetHeight()/2 + moveByY >= Game::SCREEN_HEIGHT)
{
    // RESET BALL TO MIDDLE OF SCREEN AND RESET TIMER TO 0
    GetSprite().SetPosition(Game::SCREEN_WIDTH/2, Game::SCREEN_HEIGHT/2);
    _angle = (float)sf::Randomizer::Random(0,360);
    _velocity = 220.0f;
    _elapsedTimeSinceStart = 0.0f;
}

//...

1 个答案:

答案 0 :(得分:1)

我想出了这个,添加了一些更多的条件语句来检查边界,如果球击中顶部然后将球重置到屏幕中间。