这似乎是一个简单的修复,但我似乎无法得到它,xMove代表在x轴上移动,y在y轴上移动。目前,当我的玩家对象正在向下碰撞时,一个贴图(站在地面上)时,精灵将面向右侧。如果在此之前我已经向左移动,我希望我的球员能够面朝左。所以基本上我需要一种方法来记住我的角色面对的方式,并将其返回到我的代码的yMove == 0部分。任何人都可以给我任何建议吗?简单的二维Java游戏问题
private BufferedImage getCurrentAnimationFrame(){ //set Player animations when moving
if(xMove > 0){
facingRight = true;
facingLeft = false;
return animRight.getCurrentFrame();
}
if(xMove < 0){
facingLeft = true;
facingRight = false;
return animLeft.getCurrentFrame();
}
if(yMove > 0){
return Assets.playerFall;
}
if(yMove < 0){
return Assets.playerFall;
}
if(yMove == 0){
return Assets.playerFacingRight;
}
return null;
}
编辑:我试图搞乱布尔人以返回不同的子画面,例如,如果(面向左){返回Assets.playerFacingLeft},但这样做不知何故根本不返回图像。
使用此代码后我的球员静止时不会出现图像 – Alex
已修复!您不需要检查'yMove == 0',如果前两个if语句为false,则yMove必须等于零。 –
我添加了最后的'if(facingLeft)'语句来处理当玩家既不坠落也不静止的情况。 –