package uno.mloluyu.characters; import com.badlogic.gdx.graphics.g2d.TextureAtlas; /** * 角色类,继承自Fighter父类 */ public class Alice extends Fighter { public Alice(TextureAtlas atlas) { super(atlas); speed = 350f; // 速度更快 maxHealth = 90; // 生命值较低 health = maxHealth; attackPower = 12; // 攻击力中等 } @Override protected void loadAnimations() { loadAnimationFromAtlas(Action.IDLE, "stand/stand", 15, true); loadAnimationFromAtlas(Action.WALK, "walkFront/walkFront", 9, true); loadAnimationFromAtlas(Action.JUMP, "jump/jump", 8, false); loadAnimationFromAtlas(Action.FALL, "hitSpin/hitSpin", 5, false); loadAnimationFromAtlas(Action.ATTACK1, "attackAa/attackAa", 6, false); loadAnimationFromAtlas(Action.ATTACK2, "attackAb/attackAb", 6, false); loadAnimationFromAtlas(Action.ATTACK3, "attackAc/attackAc", 6, false); loadAnimationFromAtlas(Action.ATTACK4, "attackAd/attackAd", 6, false); loadAnimationFromAtlas(Action.HIT, "hitSpin/hitSpin", 5, false); // 为特定动作设置帧间隔 setFrameDuration(Action.WALK, 0.08f); // 行走更快 setFrameDuration(Action.ATTACK1, 0.07f); // 攻击更快 setFrameDuration(Action.SPECIAL2, 0.06f); // 特殊技能2非常快 } // 特定的移动状态处理 @Override protected void handleMoveState() { // 在跳跃时也能移动 if (currentAction != Action.ATTACK1 && currentAction != Action.ATTACK2 && currentAction != Action.ATTACK3 && currentAction != Action.SPECIAL1 && currentAction != Action.SPECIAL2 && currentAction != Action.DEFEND) { if (currentAction != Action.JUMP && currentAction != Action.FALL) { changeAction(Action.WALK); } } } // 可以在空中攻击 @Override protected boolean canAttack() { return super.canAttack() || currentAction == Action.JUMP || currentAction == Action.FALL; } }