背景信息
因为我在基于Java / libgdx的多人2d rpg工作了几天。 今天我尝试在我的播放器中添加一些动画,这些动画适用于空闲动画。但是,继续我的问题我如何不止一次这样做? 我正在使用png spritesheets用于不同的状态,如空闲,步行等。 我在我的播放器类中使用状态,如左/右空闲/走动。在我的动画类中也有,同样但我无法比较它们,因为它们是枚举。
**主要问题**
是否可以通过简单的方法比较和设置
中的枚举状态class Player {
public enum Animationstates{
IDLE,RIGHT,LEFT
}
Animationstates Currentstate;
public AnimationState GetStatefromplayer(){
return Currentstate;
}
}
用
class Animatedsprite{
public enum AnimationStates{
IDLE,RIGHT,LEFT
}
AnimationState Currentstate = AnimationState.IDLE;
public void setState (AnimationState state){
Currentstate = state;
}
}
我尝试了几个不同的事情,如:
Animatedsprite.setState(Player.getState());
但那没有用:/任何解决方案?
答案 0 :(得分:1)
实际上,就我理解你的问题而言,你只需在类之外创建一个AnimationStates枚举,然后在你需要的任何地方使用它。
所以,你最终会得到三个这样的类(全部在不同的文件中):
class Player {
AnimationState currentstate;
public AnimationState GetStatefromplayer(){
return currentstate;
}
}
class Animatedsprite{
AnimationState currentstate = AnimationState.IDLE;
public void setState (AnimationState state){
currentstate = state;
}
}
public enum AnimationState{
IDLE,RIGHT,LEFT;
}
答案 1 :(得分:1)
如果他们有相同的名字,他们会这样做;
这是你比较它们的方式:
player.CurrentState.toString().equals(animatedSprite.CurrentState.toString())
这是你设置一个到另一个的方式:
player.setState(Player.AnimationStates.valueOf(animatedSprite.CurrentState.toString()))
这是一个可以帮助您更好地理解的链接: