Browse Source

指令方向,动画速率

master
yuliang 5 months ago
parent
commit
dcaf36a4fc
  1. 22
      src/modules/amr/ptr/PtrObject.ts
  2. 21
      src/modules/amr/ptr/cl2/Cl23dObject.ts
  3. 21
      src/modules/amr/ptr/clx/Clx3dObject.ts

22
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

21
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]

21
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]

Loading…
Cancel
Save