玩家跳跃但没有回来,如果你按住向上箭头键,玩家会飞/漂浮,我该如何解决这个问题,让玩家掉下来?如果提供源代码就好了,但任何帮助都很棒。
import greenfoot.*;
public class Character extends Actor
{
double Force = 0;
double Gravity = 0.5;
double Boost_Speed = -6;
int Wait = 0;
public void act()
{
setLocation( getX(), (int)(getY() + Force) );
if(Greenfoot.isKeyDown("up")){
Wait++;
Force = Boost_Speed;
if(Wait >= 8)
{
setLocation( getX(), (int)(getY() + 1) );
Wait = 0;
}
}
Force = Force + Gravity;
}
}
最佳答案
我建议通过引入标志 isJumped 并使用 Greenfoot.getKey() 方法获取最后按下的键来解决该问题:
import greenfoot.*;
public class Character extends Actor
{
double Force = 0;
double Gravity = 0.5;
double Boost_Speed = -6;
int Wait = 0;
private String lastKey;
private Boolean isJumped = false;
public void act()
{
setLocation( getX(), (int)(getY() + Force) );
lastKey = Greenfoot.getKey();
if(lastKey!=null && lastKey.equals("up") == true && isJumped == true) {
isJumped = false;
}
if(Greenfoot.isKeyDown("up") == true && isJumped == false) {
isJumped = true;
Wait++;
Force = Boost_Speed;
if(Wait >= 8)
{
setLocation( getX(), (int)(getY() + 1) );
Wait = 0;
}
}
Force = Force + Gravity;
}
}
关于java - Greenfoot:跳跃和返回不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36094506/