如何解决尝试在 C# 中实现双跳功能,该功能限制在 Godot 游戏引擎中只能进行 2 次跳转
我正在尝试使用 C# 在我的 Godot 游戏中实现双跳机制,我可以让他跳两次,但我不知道如何将跳数限制为仅 2 次。我尝试使用 jumpCount int 但无济于事。我一直无法找出实现这种机制的最佳方式我对 C# 还很陌生,我知道我的整个播放器脚本几乎都是 if 语句,但这是我能想到的让它工作的最佳方式。>
using Godot;
using System;
public class player : KinematicBody2D
{
const int jumpForce = 125;
const float gravity = 200.0f;
const int moveSpeed = 80;
const float maxFallspeed = 200.0f;
const float acceleration = 10;
float jumpCount = 2;
public Vector2 veLocity = new Vector2(0,-1);
public override void _PhysicsProcess(float delta)
{
var ap = GetNode("AnimationPlayer") as AnimationPlayer;
var sprite = GetNode("playerTex") as Sprite;
veLocity.y += delta * gravity;
veLocity.x = Mathf.Clamp(veLocity.x,-moveSpeed,moveSpeed);
if (veLocity.y > maxFallspeed)
{
veLocity.y = maxFallspeed;
}
if (Input.IsActionpressed("right"))
{
sprite.FlipH = false;
veLocity.x += acceleration;
ap.Play("run");
}
else if (Input.IsActionpressed("left"))
{
sprite.FlipH = true;
veLocity.x -= acceleration;
ap.Play("run");
}
else
{
veLocity.x = 0;
ap.Play("idle");
}
if (Input.IsActionJustpressed("jump") && jumpCount < 2)
{
jumpCount += 1;
veLocity.y = -jumpForce;
}
if (Input.IsActionpressed("jump") && IsOnFloor())
{
jumpCount = 0;
veLocity.y = -jumpForce;
}
if (veLocity.y < 0 && !IsOnFloor())
{
ap.Play("fall");
}
if (veLocity.y > 0 && !IsOnFloor())
{
ap.Play("jump");
}
MoveAndSlide(veLocity,new Vector2(0,-1));
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。