c# - 如何使用 C# 和 XNA 进行双跳?
问题描述
这是我当前的单次跳跃代码,来自用户的输入将 jump 设置为 true 并且单次跳跃没有错误,但是我无法为我的游戏生成第二次空中跳跃。我不得不在学校没有统一的情况下这样做,所以它只适用于矩形。
if (jumping) //only run when jump has been initiated by space or A
{
rect.Y = centreY - (int)(Math.Sin(angle) * range); //move player up to a maximum of range's value
angle += speedY; //gradually reduce player's y by reducing angle's value
newCentreY = rect.Y;
if (angle > Math.PI) //reset player to not jumping when angle is greater than 3.14
{
angle = 0;
jumping = false;
}
}
这是跳转的输入处理程序:
if (userControl.Buttons.A == ButtonState.Pressed || keystate.IsKeyDown(Keys.Space)) //jump when A or space is pressed
{
jumping = true;
}
Jump(userControl, keystate); //jump method
解决方案
我认为你应该让你angle
继续0
跳跃。
if (doubleJumping)
{
angle = 0;
doubleJumping = false;
}
if (jumping) //only run when jump has been initiated by space or A
{
rect.Y = centreY - (int)(Math.Sin(angle) * range); //move player up to a maximum of range's value
angle += speedY; //gradually reduce player's y by reducing angle's value
newCentreY = rect.Y;
if (angle > Math.PI) //reset player to not jumping when angle is greater than 3.14
{
angle = 0;
jumping = false;
}
}
推荐阅读
- angular - 如果您在单击之前没有离开该字段,则角度表单不会验证
- flutter - 当我离开页面时计时器没有释放
- html - 像背景 CSS 一样透明的表格
- node.js - 使用 jest 在另一个函数中模拟函数
- web-applications - 清洁架构:我应该为每个 Http 端点都有一个用例吗?
- python - 如何使用随机文本获取标签的高度--kivymd
- google-sheets - 谷歌表格:避免#DIV/0!在 ArrayFormula()
- react-native - NativeModules.CallDetectionManagerAndroid 为空
- google-sheets - 如何使用 AverageIf 过滤 2 个特定行的每 2 列?
- python - 使用 python 将下载的图像保存到本地文件夹中