c++ - 如何将 Sprite 的位置设置到屏幕中心

标签 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;
}

//...

最佳答案

我想通了,添加了更多条件语句来检查边界,如果球击中顶部则将球重置到屏幕中间。

关于c++ - 如何将 Sprite 的位置设置到屏幕中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19294085/

相关文章:

frame-rate - 赛车游戏,汽车在更快的计算机上移动得更快

c++ - 如果其他位置

c++ - 非常奇怪的内存泄漏

c++ - 在不使用数据库的情况下在进程之间共享设置?

c++ - If 语句似乎没有检查语句中的其他 &&

c++ - 尝试运行 SFML HelloWorld 代码,但出现错误

c++ - 具有 SFML 对象的 Box2D 在碰撞后重叠并相互重叠

c++ - 读出一个字符串流并将其插入不同的 vector 中

c++ - 在屏幕上移动矩形时 SFML 滞后/小口吃

c++ - C++中的虚拟继承