行走效果
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");
}
}
}
如果您迷路了,请参考完整源码:
网友评论