我正在制作2D平台游戏。到目前为止,这是我的代码。角色只有在接触到地面时才会跳跃 - 但双跳的代码不起作用。任何帮助表示赞赏。我是脚本新手,我不明白我做错了什么?
function clean(str) {
// remove double spaces
while (str.indexOf(" ") > -1) {
str = str.replace(" ", " ");
}
// remove spaces in the beginning and end (it is called "trim")
return str.trim();
}
console.log(clean(" This is the text with double spaces! "));
答案 0 :(得分:1)
尝试使用DoubleJump方法的代码替换Jump方法代码,并在应用跳转之前删除对IsGrounded的检查。否则你的角色每次都必须在地上。然后删除不再需要的DoubleJump方法。如果你在游戏后期使用DoubleJump作为附加技能,那么只需增加maxJumps,因为你的玩家可以获得技能。最初将它设置为1,这样它们每次都必须到达地面。
private void Jump() {
if (isGrounded) {
jumpsLeft = maxJumps;
}
if (Input.GetButtonDown("Jump") && jumpsLeft > 0) {
playerBody.velocity = new Vector2(playerBody.velocity.x, jumpHeight);
jumpsLeft--;
}
}
答案 1 :(得分:1)
您的代码没有多大意义。你应该用一种方法处理你的跳跃并处理它:
private void HandleJump()
{
if(isGrounded) {
jumpsLeft = maxJumps;
}
if(Input.GetButtonDown("Jump") && jumpsLeft > 0) {
playerBody.velocity = new Vector2(playerBody.velocity.x, jumpHeight);
jumpsLeft--;
}
}
通过这种方式,你可以进行三次跳跃或者你想要的多次跳跃。