gpt4 book ai didi

javascript - 让 HTML5 canvas 中的重力作用两次

转载 作者:太空狗 更新时间:2023-10-29 16:42:00 24 4
gpt4 key购买 nike

这是我的 JSFiddle:http://jsfiddle.net/Au6br/13/

问题是当我一直按 keydown.up 播放器多次跳跃。我想要的是定义一个名为 JumpCount 的变量,因此当玩家跳跃时如果跳跃变量大于该值则跳跃停止。

  Character.prototype.Jump = function () { // Jumping
character.MaxJump += gravity;
character.y += character.MaxJump;

if (keydown.up) {
if (!character.jumping) {
character.jumping = true;
character.Pos = 4;
character.Row = 2;
character.h = 23;
character.MaxJump = -character.sp * 2.5;
}
}
if (character.y >= ch - character.h) { // if the character is under the bottom
character.y = ch - character.h;
character.jumping = false;
}

};

最佳答案

第一个问题是当你不在地面上时你可以跳跃。这是因为 Onground 功能。

替换这个:

return this.y <= ch - this.h;

有了这个:

return this.y >= ch - this.h;

您还应该在 Jump 中使用此功能以避免重复代码:

if (character.Onground()) { // if the character is under the bottom
character.y = ch - character.h;
character.jumping = false;
}

只要您测试 if(keydown.up),计算跳跃次数(我假设您想要双跳)就无法工作。当您按下 UP 键时,此值将在超过一帧的时间内为真(取决于玩家按下它的持续时间),因此您永远无法正确计算跳跃次数。您必须将跳转绑定(bind)到 onkeydown 事件上,该事件被调用一次。之后,将 character.jumping 替换为整数就很简单了。

关于javascript - 让 HTML5 canvas 中的重力作用两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22480934/

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