From 2c94fae7c9321ecd8af40b4c2422b0a4487b22e6 Mon Sep 17 00:00:00 2001 From: yuliang <398780299@qq.com> Date: Wed, 25 Jun 2025 19:24:53 +0800 Subject: [PATCH] ccc --- src/modules/cl2/Cl23dObject.ts | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/modules/cl2/Cl23dObject.ts b/src/modules/cl2/Cl23dObject.ts index 94d83f0..234c8a8 100644 --- a/src/modules/cl2/Cl23dObject.ts +++ b/src/modules/cl2/Cl23dObject.ts @@ -338,7 +338,7 @@ export default class Cl23dObject extends THREE.Object3D { private _cl2Entity: Cl2Entity = null; private taskList: Task[] = []; - private executingTask: Task[] = []; + private currentTask: any = null; private travelAnimation: core.Tween = null private rotationAnimation: core.Tween = null; @@ -524,19 +524,26 @@ export default class Cl23dObject extends THREE.Object3D { executeTask() { - const currentTask = this.executingTask[this.executingTask.length - 1] + if (this.currentAnimation) { + return + } while (this.taskList.length > 0) { - const task = this.taskList.shift() - if (task.OperationType === 0) { - this.addTravel(task.X, task.Y, task.Speed / 1000) - } - if ((task.Speed > 0) != (currentTask.Speed > 1) || task.Direction != currentTask.Direction) { - // 转向 - // this.addArmRotate(task.Direction) + const task = this.taskList[0] + + if (task.OperationType == 0 && ((task.Speed > 0) != (this.currentTask.Speed > 1) || task.Direction != this.currentTask.Direction)) { + if (!this.currentAnimation || this.currentAnimation == this.rotationAnimation) { + // 转向 + this.addRotation(task.Direction) + this.currentAnimation = task + } + } else if (task.OperationType === 0) { + if (!this.currentAnimation || this.currentAnimation == this.travelAnimation) { + this.taskList.shift() + this.addTravel(task.X, task.Y, task.Speed / 1000) + this.currentAnimation = task + } } } - - }