gpt4 book ai didi

java - 需要更好的方法在乒乓球比赛中调整球的角度

转载 作者:行者123 更新时间:2023-12-02 07:40:09 25 4
gpt4 key购买 nike

我正在制作一个乒乓球克隆来练习我的编码,并且我一直致力于让球在被 Racket 击中时能够改变角度。

我当前的实现有一个球的 deltaX 和 deltaY,它随着游戏循环移动来移动球。我的做法是,如果你在 Racket 移动时击球,则 deltaY 会根据 Racket 的方向增加或减少,但这对于游戏来说一点也不自然。

有谁知道更好的方法吗?

最佳答案

我要做的第一件事是将 deltaX 和 deltaY 更改为 ballAngle 和 deltaSpeed。这样你就会从直角坐标系转移到极坐标系。由于球运动的性质(沿直线运动并在每次撞击时改变线的角度),这将使您的工作更轻松。从现在开始,您只需更改 ballAngle 即可更新球的方向。

但是,您必须更新绘制球的函数,使其从极坐标移回到直角坐标,以便可以将其显示在屏幕上。一点高中三角学知识可以让您根据角度和速度计算屏幕位置增量:

newPosition = oldPosition + movementVector

与:

movementVector.x = deltaSpeed*cos(ballAngle)
movementVector.y = deltaSpeed*sin(ballAngle)

当然,这些方程可能需要根据您测量的球角度进行一些修改。

现在,要在每次与 Racket 碰撞时修改球的角度,您只需根据球接触 Racket 的哪一部分来增加或减少球的角度,并且绘图函数中的数学应该负责更新x 和 y 位置实际。

我希望这会有所帮助。

关于java - 需要更好的方法在乒乓球比赛中调整球的角度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720293/

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