【发布时间】:2019-11-11 13:40:14
【问题描述】:
我正在尝试重新创建 google-chrome 离线 Dino 游戏。 在这个游戏中,Dino 对自己有一个重力拉动,它有一个跳跃速度,当用户按下空格键时应用向上的速度。
随着时间的推移,障碍物向玩家移动的速度越来越快。 当障碍物移动得更快时,恐龙的跳跃也应该更快。
我试图通过随着时间的推移增加重力来实现更快的跳跃,因此 Dino 被更快地拉下。但是如何让 Dino 跳到相同的高度,比如说,向上 50 像素,不管重力是多少。
我尝试使用以下公式: y = 0.5*a*t^2 + v(0)*t 但我无法得出正确的答案。
此代码工作的画布以左上角为原点(0,0)。因此跳跃速度为负,重力为正。
这段代码在 Dino 类中,其中 this 引用了 Dino。 在 Dino 类的构造函数中,我有代码
this.y = 0;
this.vy = 0;
this.gravity = 1;
this.speed = 0;
在每 x 次调用的更新函数中:
this.speed += 0.001;
this.y += this.vy;
this.vy += this.gravity;
this.gravity += speed*0.001;
跳转功能-按下空格键时执行:
this.vy = (-?);
随着时间的推移,恐龙跳跃的像素数量会越来越高。无论重力如何,我怎样才能让 Dino 每次跳跃相同数量的像素?
【问题讨论】:
标签: javascript google-chrome height p5.js gravity