【发布时间】:2019-12-23 17:21:48
【问题描述】:
我正在尝试使用带有一些额外功能的框架 Love2D 在 Lua 上编写 Pong 游戏。其中,我希望出现曲线。为了做到这一点,我正在尝试实现水平发射的弹丸的轨迹。我有一个带有 x (ball.x) 的位置属性和 y (ball.y) 的位置属性的球桌。我也有一个用于 x 速度 (ball.dx) 的属性和另一个用于 y 速度 (ball.dy) 的属性。最后,我有一个加速度变量(重力)
在我的游戏中,如果球拍移动并且球击中它,球应该跟随水平曲线。为了创建我的曲线,我想改变每一帧的 y 轴速度,以使我的球在屏幕上沿弧线移动。我遇到的主要问题是我不知道如何在每一帧中更改此速度以创建预期的弧线。我最近的尝试是创建一个类似于以下代码的 while 循环。但是,它会创建一个无限循环。有人可以请教我吗?
澄清:
-Player.x 和 player.y 是玩家坐标
-Player2.x和Player2.y是对手坐标
-这段代码在另一个检测碰撞的 if 语句中。它在 love.update(dt) 函数中。
非常感谢!
if love.keyboard.isDown("up") and distanceBetween(ball.x,ball.y,player.x,player.y)>30 then
ball.dy=0
while CollisionDetector(ball.x,player2.x,ball.y,player2.y, player2.width,player2.height,ball.size)==false or ball.x>0 or ball.y-20>0 or ball.y+20<love.graphics.getHeight() do
ball.dy=ball.dy+gravity*dt
ball.y=ball.y+ball.dy
end
end
【问题讨论】: