我正在用javascript/html5编写一个简单的游戏,我正在尝试实现"引力".
我的代码有点像这样:
gravity = 4;
acceleration = 1.1;
function gameLoop() {
gravity = gravity*acceleration;
if (characterPositionY < 600)
characterPositionY = characterPositionY + gravity;
setTimeout(gameLoop,1000/30);
}
Run Code Online (Sandbox Code Playgroud)
数字"600"是屏幕的底部,"地面",如果你愿意的话,玩家应该停止下降.
不幸的是,由于重力使得角色在每个循环周期中下降至少4个像素(并且增加)......角色通常会停止在地面之前或之前.像这样,例如:
[1] characterPositionY是590
- 加4
[2] characterPositionY是594
- 加4
[3] characterPositionY是598
- 加4
[4] characterPositionY是602
......过去了.
我以前从来没有真正做过任何游戏,而我只是随着时间的推移而全力以赴.可能有更好的方法来解决这个问题.
将您的测试更改为:
if (characterPositionY + gravity < 600)
characterPositionY = characterPositionY + gravity;
else
characterPositionY = 600;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
698 次 |
| 最近记录: |