123456789101112131415161718192021 |
- {
- "code": "import Dictionary from \"../Util/Dictionary\";\r\nimport { SceneController } from \"./SceneController\";\r\nvar Vector3 = Laya.Vector3;\r\nimport { Mathf } from \"../Util/Mathf\";\r\nimport { ColliderLayer } from \"./DefinedType\";\r\nimport { GlobalVariable } from \"../game_module/GlobalVariable\";\r\nimport PlayerController from \"./PlayerController\";\r\nimport { EffectController } from \"./EffectController\";\r\nimport GameUi from \"../Window/GameUi\";\r\nimport { SettingController } from \"./SettingController\";\r\nexport class Aim {\r\n constructor(_weight, _tran, _colliderType, iscar, carB, roleB, bossB) {\r\n this._weight = _weight;\r\n this._tran = _tran;\r\n this._iscar = iscar;\r\n this._colliderType = _colliderType;\r\n this.carB = carB;\r\n this.roleB = roleB;\r\n this.bossB = bossB;\r\n }\r\n}\r\nexport default class AimController {\r\n constructor() {\r\n this.weight = 0;\r\n this.rayPoint = new Laya.Vector2();\r\n this.isslider = false;\r\n this.speedBufer = 1;\r\n this.v3 = Mathf.VecZero;\r\n this.aimDic = new Dictionary();\r\n this.tempPos = Mathf.VecZero;\r\n this.aimUipos = Mathf.VecZero;\r\n ;\r\n }\r\n static get Instance() {\r\n return this.instance || (this.instance = new AimController());\r\n }\r\n SetAim(id, aim) {\r\n this.aimDic.set(id, aim);\r\n }\r\n JundgerAim() {\r\n let temp = -1;\r\n let index = 0;\r\n for (const key in this.aimDic.container) {\r\n const element = this.aimDic.get(key);\r\n if (element._weight > temp) {\r\n temp = element._weight;\r\n index = Number(key);\r\n }\r\n }\r\n if (index != 0) {\r\n if (this.curAimIndex != index) {\r\n this.curAimIndex = index;\r\n this.curAim = this.aimDic.get(this.curAimIndex);\r\n this.curAimTra = this.curAim._tran;\r\n }\r\n }\r\n else {\r\n this.curAimTra = null;\r\n }\r\n }\r\n _SetAim(id) {\r\n if (this.aimDic.has(id)) {\r\n this.curAimIndex = id;\r\n this.curAim = this.aimDic.get(this.curAimIndex);\r\n this.curAimTra = this.curAim._tran;\r\n }\r\n else {\r\n this.JundgerAim();\r\n }\r\n }\r\n RemoveAim(id) {\r\n this.aimDic.delete(id);\r\n }\r\n StartAim() {\r\n if (!this.camera)\r\n this.camera = SceneController.Instance._camera;\r\n Laya.timer.frameLoop(1, this, this.LoopTime);\r\n }\r\n LoopTime() {\r\n if (!this.curAimTra)\r\n return;\r\n if (!GameUi.Instance)\r\n return;\r\n if (this.isslider)\r\n return;\r\n this.aimUipos.x = GameUi.Instance.aim.x;\r\n this.aimUipos.y = GameUi.Instance.aim.y;\r\n this.aimUipos = Mathf.MixVector3(this.aimUipos, this.tempPos, GlobalVariable.aimArg);\r\n GameUi.Instance.aim.x = this.aimUipos.x;\r\n GameUi.Instance.aim.y = this.aimUipos.y;\r\n }\r\n CreateRay() {\r\n if (!GameUi.Instance)\r\n return;\r\n this.rayPoint.x = GameUi.Instance.aim.x;\r\n this.rayPoint.y = GameUi.Instance.aim.y;\r\n if (!this._scene) {\r\n this.camera = SceneController.Instance._camera;\r\n this._scene = SceneController.Instance._mainscene;\r\n }\r\n if (!this.ray) {\r\n this.ray = new Laya.Ray(Mathf.VecZero, Mathf.VecZero);\r\n this.outHit = new Laya.HitResult();\r\n }\r\n this.camera.viewportPointToRay(this.rayPoint, this.ray);\r\n var isHIt = this._scene.physicsSimulation.rayCast(this.ray, this.outHit);\r\n var o;\r\n if (isHIt) {\r\n var obj = this.outHit.collider.owner;\r\n let l = obj.layer;\r\n console.log(\"da击了:\" + obj.name);\r\n PlayerController.Instance.CreatePlayerBullet(this.outHit.point);\r\n if (l == ColliderLayer.tyre1 || l == ColliderLayer.tyre2 || l == ColliderLayer.tyre3 || l == ColliderLayer.tyre4 || l == ColliderLayer.role || l == ColliderLayer.boss) {\r\n if (this.aimDic.has(obj.id)) {\r\n let aim = this.aimDic.get(obj.id);\r\n if (aim._iscar == 1) {\r\n SettingController.Instance.PlayHitcar();\r\n aim.carB.Atked(aim._colliderType);\r\n aim.carB.HitEffect(this.outHit.point);\r\n }\r\n else if (aim._iscar == 2) {\r\n SettingController.Instance.PlayHitRole();\r\n aim.roleB.Atked(this.outHit.point);\r\n }\r\n else if (aim._iscar == 3) {\r\n SettingController.Instance.PlayHitcar();\r\n aim.bossB.Atked();\r\n aim.bossB.HitEffect(this.outHit.point);\r\n }\r\n }\r\n }\r\n else {\r\n if (l != ColliderLayer.plane)\r\n SettingController.Instance.PlayHitcar();\r\n EffectController.Instance.CreateEffect(EffectController.effectName.hit, SceneController.Instance._effectNode, this.outHit.point);\r\n }\r\n }\r\n else {\r\n o = new Vector3(this.ray.origin.x + this.ray.direction.x * 10, this.ray.origin.y + this.ray.direction.y * 10, this.ray.origin.z + this.ray.direction.z * 10);\r\n PlayerController.Instance.CreatePlayerBullet(o);\r\n }\r\n }\r\n CreateRay1() {\r\n if (!GameUi.Instance)\r\n return;\r\n this.rayPoint.x = GameUi.Instance.aim.x;\r\n this.rayPoint.y = GameUi.Instance.aim.y;\r\n if (!this._scene) {\r\n this.camera = SceneController.Instance._camera;\r\n this._scene = SceneController.Instance._mainscene;\r\n }\r\n if (!this.ray) {\r\n this.ray = new Laya.Ray(Mathf.VecZero, Mathf.VecZero);\r\n this.outHit = new Laya.HitResult();\r\n }\r\n this.camera.viewportPointToRay(this.rayPoint, this.ray);\r\n var isHIt = this._scene.physicsSimulation.rayCast(this.ray, this.outHit);\r\n if (isHIt) {\r\n var obj = this.outHit.collider.owner;\r\n let l = obj.layer;\r\n if (l == ColliderLayer.tyre1 || l == ColliderLayer.tyre2\r\n || l == ColliderLayer.role || l == ColliderLayer.boss) {\r\n this.tempIndex = obj.id;\r\n console.log(\"小朋友是不是有很多问好??\");\r\n }\r\n }\r\n }\r\n OnSlider(offsetx, offsetZ) {\r\n let x = offsetx * GlobalVariable.sliderOffset;\r\n let z = offsetZ * GlobalVariable.sliderOffset;\r\n this.isslider = true;\r\n let _x = GameUi.Instance.aim.x;\r\n let _y = GameUi.Instance.aim.y;\r\n let tx = GameUi.Instance.aim.x + x;\r\n let ty = GameUi.Instance.aim.y + z;\r\n GameUi.Instance.aim.x = tx;\r\n GameUi.Instance.aim.y = ty;\r\n }\r\n StopSlider() {\r\n this.isslider = false;\r\n this.JundgeMinDis();\r\n }\r\n JundgeMinDis() {\r\n this.v3.x = GameUi.Instance.aim.x;\r\n this.v3.y = GameUi.Instance.aim.y;\r\n let x1;\r\n let x2 = Mathf.VecZero;\r\n let index;\r\n let dis;\r\n for (const key in this.aimDic.container) {\r\n const element = this.aimDic.get(key);\r\n x1 = element._tran.position.clone();\r\n x2.z = 0;\r\n let d = Vector3.distance(this.v3, x2);\r\n if (!dis) {\r\n dis = d;\r\n index = key;\r\n }\r\n else {\r\n if (d < dis) {\r\n dis = d;\r\n index = key;\r\n }\r\n }\r\n }\r\n if (!index)\r\n return;\r\n this.curAimIndex = Number(index);\r\n this.curAim = this.aimDic.get(this.curAimIndex);\r\n if (!this.curAim) {\r\n console.log(this.curAimIndex);\r\n return;\r\n }\r\n ;\r\n this.curAimTra = this.curAim._tran;\r\n }\r\n Reset() {\r\n Laya.timer.clearAll(this);\r\n this.curAimIndex = null;\r\n this.curAimTra = null;\r\n this.curAim = null;\r\n for (const key in this.aimDic.container) {\r\n this.aimDic.delete(key);\r\n }\r\n }\r\n}\r\n",
- "references": [
- "D:/GitProject/GunGang/gungang_laya/gungang/src/Util/Dictionary.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/EnemyCar.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/SceneController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/Util/Mathf.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/Window/MainUi.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/EventManager.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/DefinedType.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/Enemy.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/game_module/GlobalVariable.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PlayerController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/BossCar.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/EffectController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/Window/GameUi.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/SettingController.ts",
- "D:/GitProject/GunGang/gungang_laya/gungang/src/Util/MatrixTransform.ts"
- ]
- }
|