gpt4 book ai didi

c - 如何检查不同速度的球与桨之间的碰撞

转载 作者:行者123 更新时间:2023-11-30 15:01:20 25 4
gpt4 key购买 nike

我目前正在为大学作业创建一款类似于乒乓球的游戏。为了让您大致了解游戏的运作方式,屏幕底部有一个水平移动的桨。还有一个球会在屏幕上移动,玩家必须使用桨阻止球离开屏幕底部。每次球击中屏幕顶部时,玩家都会得分。

我已经成功地让游戏的大部分内容正常运行,但我在球和 Racket 之间的碰撞方面遇到了一些问题。目前,如果球以每帧 1 像素的速度移动,碰撞效果很好。然而,对于规范来说,球速度必须是可变的,因此球需要能够在所有速度下与 Racket 正确碰撞。

我当前用于碰撞的代码如下:

if((ball.y+5) == (bat.y))
{
if(ball.x >= bat.x && ball.x <= (bat.x+40))
{
ball.dy = -ball.dy;
game.goingUp = true;
}
}

本质上,这测试了球的坐标是否等于 Racket 的坐标,如果是的话,将改变球的方向。然而,由于其具有特定的坐标,球可以以更高的速度完全穿过球棒。

我想做的是以每帧 10 像素的速度进行碰撞,但我真的不知道如何做到这一点,任何帮助将不胜感激。

最佳答案

我相信解决这个问题的方法就是他们所说的“扫荡”。获取最后一个位置和当前位置,创建一条线(如果您正在处理更复杂的对象,则创建一个更大的矩形),然后用它进行碰撞检查。

应该注意的是,任何大于像素的东西都可以表示为边界框,即矩形或圆形,相对简单。

关于c - 如何检查不同速度的球与桨之间的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41511840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com