diff --git a/objects/Unit.js b/objects/Unit.js index 6f9c0ba..45c69c9 100644 --- a/objects/Unit.js +++ b/objects/Unit.js @@ -22,6 +22,9 @@ export default class Unit extends Phaser.Physics.Arcade.Sprite { // 目标地点显示 this.targetIndicator = null; this.pathGraphics = null; + + // 移动控制 + this.canMove = true; } /** diff --git a/scenes/testScenes/AttackSkillTestScene.js b/scenes/testScenes/AttackSkillTestScene.js index ee1bc43..425e566 100644 --- a/scenes/testScenes/AttackSkillTestScene.js +++ b/scenes/testScenes/AttackSkillTestScene.js @@ -627,6 +627,12 @@ export default class AttackSkillTestScene extends Phaser.Scene { directionY = pointer.y - this.skillWheel.centerY; } + // 对于一技能和四技能,设置canMove为false,确保角色不能移动 + if ((skillIndex === 1 || skillIndex === 4) && !this.isControllingPuppet) { + yuange.canMove = false; + yuange.setVelocity(0, 0); + } + if (this.isControllingPuppet) { // 控制傀儡时的技能 switch (skillIndex) { @@ -839,6 +845,11 @@ export default class AttackSkillTestScene extends Phaser.Scene { // 自动锁定相机到傀儡 mod.setCameraLocked(true); }); + + // 技能释放完成后,恢复移动能力 + setTimeout(() => { + yuange.canMove = true; + }, 100); } break; case 2: // 技能2:扇形飞镖攻击 @@ -873,6 +884,9 @@ export default class AttackSkillTestScene extends Phaser.Scene { this.time.delayedCall(500, () => { yuange.setPosition(targetX, targetY); yuange.setVelocity(0, 0); + + // 技能释放完成后,恢复移动能力 + yuange.canMove = true; }, [], this); } break;