【问题标题】:Bug developing Pong Game开发 Pong 游戏的错误
【发布时间】:2019-03-17 23:27:39
【问题描述】:

我正在创建我的第一个游戏 Pong,但我有一个不知道如何修复的小错误。如果球从上方撞击垫板,它会进入垫板内部并从另一侧退出。

这里有一个视频链接,可以更好地了解这个错误Pong Game Bug

我还会在此处发布我的代码,以便您了解我是如何尝试的。

    // Ball

    ball.move(xVelocityBall, yVelocityBall);

    // Colosion for pad1
    if (ball.getGlobalBounds().intersects(pad1.getGlobalBounds()) == true)
    {
        xVelocityBall = -xVelocityBall;
        hit.play();
    }

    // Colosion for pad2
    if (ball.getGlobalBounds().intersects(pad2.getGlobalBounds()) == true)
    {
        xVelocityBall = -xVelocityBall;
        hit.play();
    }

【问题讨论】:

  • 欢迎来到 Stack Overflow!我们很乐意帮助您调试,但您的问题没有提供足够的详细信息(例如,我们不知道 ball 是什么类型)。如果您可以编辑您的问题以提供minimal reproducible example,您将更有可能获得有意义的帮助。 (此外,调试器和打印语句是您的朋友!验证游戏中不同元素的边界是否符合您的预期。逐步检查每个部分并确保正确进行比较。)

标签: c++ sfml


【解决方案1】:

我认为问题在于,当您的球与垫相交时,您更改了速度矢量的 x 分量的符号,但您的球仍在垫上,因此下一帧速度的符号再次更改,导致球卡在垫子上。

这种碰撞需要注意,因为你会遇到很多边缘情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-20
    • 2018-11-04
    • 2020-10-26
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    相关资源
    最近更新 更多