이것은 다른 스프라이트 시트의 애니메이션을 수행하는 코드입니다.
public void performEatingAnimation(Bird b) {
float x = b.getSelectedAnimatedsprite().getX();
float y = b.getSelectedAnimatedsprite().getY();
b.getSelectedAnimatedsprite().setVisible(false);
b.getSelectedAnimatedsprite().detachSelf();
b.setSelectedAnimatedsprite(b.getEatingAnimatedsprite());
attachObjectWithNewPosition(b.getSelectedAnimatedsprite(), x, y);
b.getSelectedAnimatedsprite().animate(60, 2);
}
public void performWalkAnimation(Bird b) {
float x = b.getSelectedAnimatedsprite().getX();
float y = b.getSelectedAnimatedsprite().getY();
b.getSelectedAnimatedsprite().setVisible(false);
b.getSelectedAnimatedsprite().detachSelf();
b.setSelectedAnimatedsprite(b.getWalkingAnimatedsprite());
attachObjectWithNewPosition(b.getSelectedAnimatedsprite(), x, y);
b.getSelectedAnimatedsprite().animate(60, 0)
}
그리고 여기 AnimatedSprite의 deepCopy를 수행하는 내 setSelected 메소드가 있습니다.
public void setSelectedAnimatedsprite(AnimatedSprite selectedAnimatedsprite) {
AnimatedSprite sprite = new AnimatedSprite(
selectedAnimatedsprite.getX(), selectedAnimatedsprite.getY(),
selectedAnimatedsprite.getTiledTextureRegion().deepCopy(),
selectedAnimatedsprite.getVertexBufferObjectManager());
this.selectedAnimatedsprite = sprite;
}
나는 내가 그것을 참조하고는, setVisible (거짓)을 통과하고 난 anycase
에서 원하지 않는 WalkingAnimatedSprite 및 EatingAnimatedSprite에 일어날 분리 것을하지 않으면 때문에 선택된 스프라이트를 deepCopy해야
이것을 해결할 수 있었습니까? 나는 현재 같은 상황에있다. – glogic
예, 내 대답을보십시오. – Waqas