行走效果
Enemy类重写父类move方法,在其实现中设置walk动画。
public class Enemy extends ActorObject{ public void move(double x, double y){ if(!_dead) { if (!isBlocked()) { setZ(getZ() + y); getTransform().translate(x, y); if (!getAnimator().isPlaying("walk")) { getAnimator().setAnimation("walk"); } } } } }
死亡效果
很简单,在Enemy的update方法中,如果我们判断出对象已经死亡,设置死亡动画。
public class Enemy extends ActorObject{ private boolean _dead = false; @Override public void update(Graphics2D g){ if(!_dead) { super.update(g); } if(!isDead()){ if(isBlocked()){ this.takeDamage(_player); } } else{ if(!_dead){ getAnimator().setAnimation("die"); _dead = true; } if(getAnimator().getMaxFrame()==getAnimator().getCurrentFrame()){ getAnimator().setAnimation("dead"); } } }
如果您迷路了,请参考完整源码: