Files
Game/src/main/java/uno/mloluyu/characters/Alice.java

57 lines
2.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
}
}