Commit 0a527e6e authored by Master Q's avatar Master Q

1

parent c2e93616
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -821,6 +821,9 @@ export class CarScene extends PerspectiveScene {
preSpeedNum: number = 0 // 前一帧速度
preVehiclePositionY: number = 0 // 前一帧高度
_currDistance: number = 0
_preVehiclePos: THREE.Vector3 = new THREE.Vector3()
_rotateNum: number = 0
_prerotateflag: number = 0
get currDistance() {
return this._currDistance
......@@ -833,6 +836,14 @@ export class CarScene extends PerspectiveScene {
})
}
get rotateNum() {
return this._rotateNum
}
set rotateNum(v) {
this._rotateNum = v
}
onEnterFrame(e: any) {
const delta = e.data.delta
if (this.physicWorld) {
......@@ -846,7 +857,8 @@ export class CarScene extends PerspectiveScene {
this.updateCamera(this.camera)
if (this.vehicleIns && this.UICtn) {
const h = this.vehicleIns.chassisMesh.position.y
const vehiclePos = this.vehicleIns.chassisMesh.position
const h = vehiclePos.y
const currSpeedNum = this.vehicleIns.speedNum
const minH = GameConfig.h
......@@ -854,24 +866,38 @@ export class CarScene extends PerspectiveScene {
// 高于 一定高度
if (h > minH) {
// this.currDistance += currSpeedNum * delta
const _t = new THREE.Vector3(vehiclePos.x, 0, vehiclePos.z)
const currflag = _defaultVector3.crossVectors(this._preVehiclePos, _t).y
let rn = 0
if (this.preVehiclePositionY < minH) {
console.log('开始积分')
// 刚开始进入
this.currDistance = 0
this.currDistance += currSpeedNum * delta
this.rotateNum = 0
} else {
const isReversal = currSpeedNum * this.preSpeedNum < 0
if (isReversal) {
const isReversalSpeed = currSpeedNum * this.preSpeedNum < 0
// 跑的方向 相反
const isReversal = this._prerotateflag * currflag < 0
rn = this._preVehiclePos.angleTo(_t)
if (isReversalSpeed || isReversal) {
this.onGameSubmit(this.currDistance)
console.log('开始积分')
this.currDistance = 0
this.rotateNum = 0
}
this.currDistance += currSpeedNum * delta
}
this.currDistance += currSpeedNum * delta
this.rotateNum += rn
this._preVehiclePos.copy(_t)
this._prerotateflag = currflag
} else {
if (this.currDistance != 0) {
// 提交
this.onGameSubmit(this.currDistance)
this.currDistance = 0
this.rotateNum = 0
}
}
......@@ -882,7 +908,7 @@ export class CarScene extends PerspectiveScene {
}
onGameSubmit(n: number) {
console.log('当前分数:', Math.abs(n))
console.log('当前分数:', Math.abs(n), '圈数:', (this.rotateNum / Math.PI / 2).toFixed(2))
GDispather.dispatchEvent('distanceUpdate', {
distance: Math.abs(n)
})
......
......@@ -13,5 +13,6 @@ export const ResJson = {
"name": "skybox"
}
],
"path": "./resource/"
// eslint-disable-next-line
"path": "https://yun.duiba.com.cn/db_games/activity/template/1663753225/resource/"
}
\ No newline at end of file
......@@ -27,15 +27,19 @@ export class StageScene {
async initStage() {
RES.loadConfig(ResJson)
if (typeof Ammo === 'function') {
// @ts-ignore
Ammo().then(() => {
this.stage = new CarScene(this.renderDom, this.UIParentNode)
})
} else {
this.stage = new CarScene(this.renderDom, this.UIParentNode)
}
}
destroy() {
this.stage.destroy()
this.stage && this.stage.destroy()
}
}
\ No newline at end of file
......@@ -4,7 +4,7 @@ const webpack = require('webpack');
const path = require('path')
module.exports = merge(common, {
mode: "development",//production development
mode: "production",//production development
devtool: 'source-map',
plugins: [
]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment