From dcaf36a4fc24db962d71069ac5c5911148a6bc31 Mon Sep 17 00:00:00 2001 From: yuliang <398780299@qq.com> Date: Fri, 11 Jul 2025 08:49:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8C=87=E4=BB=A4=E6=96=B9=E5=90=91=EF=BC=8C?= =?UTF-8?q?=E5=8A=A8=E7=94=BB=E9=80=9F=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/amr/ptr/PtrObject.ts | 22 ++++++++++++---------- src/modules/amr/ptr/cl2/Cl23dObject.ts | 21 ++++++++++++++++----- src/modules/amr/ptr/clx/Clx3dObject.ts | 21 ++++++++++++++++----- 3 files changed, 44 insertions(+), 20 deletions(-) diff --git a/src/modules/amr/ptr/PtrObject.ts b/src/modules/amr/ptr/PtrObject.ts index fd3200d..efd1ac3 100644 --- a/src/modules/amr/ptr/PtrObject.ts +++ b/src/modules/amr/ptr/PtrObject.ts @@ -60,9 +60,9 @@ export default class PtrObject extends THREE.Object3D { override AGVModel = '' override AGVFnModel = '' - override rotationSpeed: number = 0 - override showForkSpeed: number = 0 - override upForkSpeed: number = 0 + override __rotationSpeed: number = 0 + override __showForkSpeed: number = 0 + override __upForkSpeed: number = 0 private boxBody: any = null private __toPos: THREE.Vector3 = null @@ -662,10 +662,10 @@ export default class PtrObject extends THREE.Object3D { } else if (data.OperationType == 3 && data.ChargeDirection >= 0 && data.ChargeDirection <= 3) { endDirection = data.ChargeDirection } else if (data.OperationType == 4 && data.GoodsSlotDirection >= 0 && data.GoodsSlotDirection <= 3) { - if (data.GoodsSlotDirection == 3) { - endDirection = 0 + if (data.GoodsSlotDirection == 0) { + endDirection = 3 } else { - endDirection = (data.GoodsSlotDirection + 1) as LogicDirection + endDirection = (data.GoodsSlotDirection - 1) as LogicDirection } } @@ -794,7 +794,7 @@ export default class PtrObject extends THREE.Object3D { this.OperationType = 0 this.TaskMode = 0 this.executeTask() - }, 2000) + }, 2000 / (worldModel.state.runState.timeRate ?? 1)) } /*==========动作处理============*/ @@ -855,7 +855,9 @@ export default class PtrObject extends THREE.Object3D { const pos = Model.getPositionByLogicXY(logicX, logicY) this.__toPos = pos as THREE.Vector3 //加速度 - const a = 0.4 + const a = 0.4 * (worldModel.state.runState.timeRate ?? 1) + const sa = 0.4 * (worldModel.state.runState.timeRate ?? 1) + speed = speed * (worldModel.state.runState.timeRate ?? 1) if (this.position.x < this.__toPos.x || this.position.z < this.__toPos.z) { speed = Math.abs(speed) @@ -918,7 +920,7 @@ export default class PtrObject extends THREE.Object3D { if (cSpeed == 0) { this.boxBody.activate() } - if (distance <= stopDistance + 0.2) { + if (distance <= stopDistance) { if (currentPhase != 'decelerate') { currentPhase = 'decelerate' const sp = new this.viewport.ammoModel.btVector3(velocity.x(), velocity.y(), velocity.z()) @@ -949,7 +951,7 @@ export default class PtrObject extends THREE.Object3D { case 'decelerate': // 检测停止 if (cSpeed > 0) { - this.boxBody.setDamping(0.6, 0); + this.boxBody.setDamping(sa, 0); } this.boxBody.activate() break diff --git a/src/modules/amr/ptr/cl2/Cl23dObject.ts b/src/modules/amr/ptr/cl2/Cl23dObject.ts index 357293e..35e46ab 100644 --- a/src/modules/amr/ptr/cl2/Cl23dObject.ts +++ b/src/modules/amr/ptr/cl2/Cl23dObject.ts @@ -7,14 +7,25 @@ import Cl2Entity from '@/modules/amr/ptr/cl2/Cl2Entity' import Cl23DGraphics from "@/modules/amr/ptr/cl2/Cl23DGraphics" import PtrObject from "../PtrObject"; import Viewport from "@/core/engine/Viewport"; +import {worldModel} from "@/core/manager/WorldModel"; export default class Cl23dObject extends PtrObject { private _cl2Entity: Cl2Entity = null - override rotationSpeed = (Math.PI / 7) - override showForkSpeed: number = 0.2 - override upForkSpeed: number = 0.2 + override __rotationSpeed = (Math.PI / 7) + override __showForkSpeed: number = 0.2 + override __upForkSpeed: number = 0.2 + + private get upForkSpeed() { + return this.__upForkSpeed * (worldModel.state.runState.timeRate ?? 1) + } + private get showForkSpeed() { + return this.__showForkSpeed * (worldModel.state.runState.timeRate ?? 1) + } + private get rotationSpeed() { + return this.__rotationSpeed * (worldModel.state.runState.timeRate ?? 1) + } public get cl2Entity(): Cl2Entity { if (!this._cl2Entity) { @@ -76,7 +87,7 @@ export default class Cl23dObject extends PtrObject { onComplete: ()=>{ setTimeout(() => { resolve() - }, 1000) + }, 1000 / (worldModel.state.runState.timeRate ?? 1)) }, }) }) @@ -106,7 +117,7 @@ export default class Cl23dObject extends PtrObject { onComplete: ()=>{ setTimeout(() => { resolve() - }, 1000) + }, 1000 / (worldModel.state.runState.timeRate ?? 1)) }, onUpdate: function () { const a = this.targets()[0] diff --git a/src/modules/amr/ptr/clx/Clx3dObject.ts b/src/modules/amr/ptr/clx/Clx3dObject.ts index a49b07c..f92cd16 100644 --- a/src/modules/amr/ptr/clx/Clx3dObject.ts +++ b/src/modules/amr/ptr/clx/Clx3dObject.ts @@ -6,13 +6,24 @@ import {mergeGeometries} from 'three/addons/utils/BufferGeometryUtils.js' import Clx3DGraphics from "@/modules/amr/ptr/clx/Clx3DGraphics"; import Viewport from "@/core/engine/Viewport"; import PtrObject from "@/modules/amr/ptr/PtrObject"; +import {worldModel} from "@/core/manager/WorldModel"; export default class Clx3dObject extends PtrObject { - override rotationSpeed = (Math.PI / 10) - override showForkSpeed: number = 0.15 - override upForkSpeed: number = 0.15 + override __rotationSpeed = (Math.PI / 10) + override __showForkSpeed: number = 0.15 + override __upForkSpeed: number = 0.15 + + private get upForkSpeed() { + return this.__upForkSpeed * (worldModel.state.runState.timeRate ?? 1) + } + private get showForkSpeed() { + return this.__showForkSpeed * (worldModel.state.runState.timeRate ?? 1) + } + private get rotationSpeed() { + return this.__rotationSpeed * (worldModel.state.runState.timeRate ?? 1) + } constructor(item: ItemJson, viewport: Viewport, option?: RendererCudOption) { super(item, viewport) @@ -196,7 +207,7 @@ export default class Clx3dObject extends PtrObject { onComplete: ()=>{ setTimeout(() => { resolve() - }, 1000) + }, 1000 / (worldModel.state.runState.timeRate ?? 1)) }, }) }) @@ -261,7 +272,7 @@ export default class Clx3dObject extends PtrObject { onComplete: ()=>{ setTimeout(() => { resolve() - }, 1000) + }, 1000 / (worldModel.state.runState.timeRate ?? 1)) }, onUpdate: function() { const a = this.targets()[0]