d72fc0b571cfd2a4398bac81e58c4d5a43db2eb2 27 KB

1234567891011121314151617181920
  1. {
  2. "code": "var Vector3 = Laya.Vector3;\r\nimport { AnimatorClip } from \"./DefinedType\";\r\nimport { Mathf } from \"../Util/Mathf\";\r\nimport { GlobalVariable } from \"../game_module/GlobalVariable\";\r\nimport { SceneController } from \"./SceneController\";\r\nvar Quaternion = Laya.Quaternion;\r\nimport FriendController from \"../Controller/FriendController\";\r\nimport { PoolManager } from \"./PoolManager\";\r\nimport { PlayerBullet } from \"./PlayerBullet\";\r\nimport PlayerController from \"../Controller/PlayerController\";\r\nimport { EventManager, EventType } from \"./EventManager\";\r\nimport { EffectController } from \"./EffectController\";\r\nimport EnemyController from \"../Controller/EnemyController\";\r\nimport { PlayerManager } from \"./PlayerManager\";\r\nexport default class Friend extends Laya.Script3D {\r\n constructor() {\r\n super(...arguments);\r\n this._up = new Vector3(0, 1, 0);\r\n this.isreturn = false;\r\n this.isover = false;\r\n this.isClickCom = true;\r\n this.isStop = true;\r\n this.ts = new Vector3(0, 0, 0.01);\r\n this.isFristShoot = true;\r\n }\r\n onAwake() {\r\n this.selfobj = this.owner;\r\n this.tran = this.selfobj.transform;\r\n this.animator = this.selfobj.getChildAt(0).getComponent(Laya.Animator);\r\n this.rayPoint = this.selfobj.getChildByName(\"rayPoint\").transform;\r\n this.bulletPos = this.selfobj.getChildByName(\"bulletPos\").transform;\r\n this.forW = Mathf.VecZero;\r\n this.speed = GlobalVariable.friendspeed;\r\n this.quaternion1 = new Quaternion();\r\n }\r\n SetTar(tar) {\r\n }\r\n TweenFall() {\r\n let tween = Laya.Tween.to(this.tran, { localPositionY: 0 }, 400, Laya.Ease.quintIn, Laya.Handler.create(this, () => {\r\n let dataPar = PlayerController.Instance.GetFrindPar();\r\n if (!dataPar) {\r\n console.warn(\"friendPar没有位置了\");\r\n return;\r\n }\r\n this.dataPar = dataPar;\r\n this.dataPar[\"ishave\"] = true;\r\n this.tar = this.dataPar[\"sp\"];\r\n this.tarTra = this.tar.transform;\r\n tween.clear();\r\n this.StartMove();\r\n }, null, false));\r\n }\r\n StartMove() {\r\n this.PlayAni(AnimatorClip.animator.RunAndGun, 2);\r\n this.isreturn = false;\r\n this.isClickCom = true;\r\n this.isStop = true;\r\n this.isover = false;\r\n Laya.timer.frameLoop(1, this, this.Move);\r\n }\r\n _createRay() {\r\n this.CreateRay();\r\n }\r\n Move() {\r\n if (this.isreturn) {\r\n this._createRay();\r\n return;\r\n }\r\n let tarPos = this.tarTra.position.clone();\r\n Vector3.subtract(tarPos, this.tran.position, this.forW);\r\n Vector3.normalize(this.forW, this.forW);\r\n this.forW = new Vector3(this.forW.x * this.speed, this.forW.y * this.speed, this.forW.z * this.speed);\r\n this.tran.translate(this.forW, false);\r\n if (Vector3.distance(this.tran.position, tarPos) < 0.05) {\r\n this.ArriveTarPos();\r\n return;\r\n }\r\n Quaternion.lookAt(tarPos, this.tran.position, this._up, this.quaternion1);\r\n this.quaternion1.invert(this.quaternion1);\r\n Quaternion.slerp(this.tran.rotation, this.quaternion1, 0.1, this.quaternion1);\r\n this.tran.rotation = this.quaternion1.clone();\r\n }\r\n ArriveTarPos() {\r\n this.isClickCom = true;\r\n this.isStop = true;\r\n this.isreturn = true;\r\n this.tar.addChild(this.selfobj);\r\n this.tran.localPosition = Mathf.VecZero;\r\n this.PlayAni(AnimatorClip.animator.RunAndGun, 2);\r\n let tween = Laya.Tween.to(this.tran, { localRotationEulerY: 0 }, 100, Laya.Ease.quintIn, Laya.Handler.create(this, () => {\r\n tween.clear();\r\n this.tran.localRotationEuler = Mathf.VecZero;\r\n this.BulletHandler();\r\n FriendController.Instance.AddGetDic(this.selfobj.id, this);\r\n if (PlayerController.Instance.IsBulleting())\r\n this.CreateBullet();\r\n }, null, false));\r\n }\r\n CreateRay() {\r\n let origP = this.rayPoint.position;\r\n if (!this._scene) {\r\n this._scene = SceneController.Instance._mainscene;\r\n }\r\n if (!this.rayF) {\r\n this.rayF = new Laya.Ray(Mathf.VecZero, new Vector3(0, 0, 1));\r\n this.outHitF = new Laya.HitResult();\r\n }\r\n this.rayF.origin = origP;\r\n let isHItF = this._scene.physicsSimulation.rayCast(this.rayF, this.outHitF, GlobalVariable.playerRayLengthF);\r\n if (isHItF) {\r\n let obj = this.outHitF.collider.owner;\r\n this.Died(this.outHitF.point);\r\n return;\r\n }\r\n if (!this.rayL) {\r\n this.rayL = new Laya.Ray(Mathf.VecZero, new Vector3(1, 0, 0));\r\n this.outHitL = new Laya.HitResult();\r\n }\r\n this.rayL.origin = origP;\r\n let isHItL = this._scene.physicsSimulation.rayCast(this.rayL, this.outHitL, GlobalVariable.playerRayLengthLR);\r\n if (isHItL) {\r\n let obj = this.outHitL.collider.owner;\r\n this.Died(this.outHitL.point);\r\n return;\r\n }\r\n if (!this.rayR) {\r\n this.rayR = new Laya.Ray(Mathf.VecZero, new Vector3(-1, 0, 0));\r\n this.outHitR = new Laya.HitResult();\r\n }\r\n this.rayR.origin = origP;\r\n let isHItR = this._scene.physicsSimulation.rayCast(this.rayR, this.outHitR, GlobalVariable.playerRayLengthLR);\r\n if (isHItR) {\r\n let obj = this.outHitR.collider.owner;\r\n this.Died(this.outHitR.point);\r\n return;\r\n }\r\n }\r\n PlayAni(clip, speed, callback) {\r\n this.animator.play(clip);\r\n if (!speed)\r\n speed = 1;\r\n this.animator.speed = speed;\r\n }\r\n BulletHandler() {\r\n EventManager.on(EventType.Event.StartShot, this, this.CreateBullet);\r\n EventManager.on(EventType.Event.StopShot, this, this.StopCreate);\r\n }\r\n CreateBullet() {\r\n this.isStop = false;\r\n if (!this.isClickCom)\r\n return;\r\n this.isClickCom = false;\r\n this._CreateBullet();\r\n Laya.timer.loop(PlayerManager.bulletTime * 2 * 1000, this, this.LoopCreate);\r\n }\r\n LoopCreate() {\r\n if (this.isStop) {\r\n Laya.timer.clear(this, this.LoopCreate);\r\n this.isClickCom = true;\r\n return;\r\n }\r\n this._CreateBullet();\r\n }\r\n _CreateBullet() {\r\n let bu = PoolManager.Instance.SetActiveObject(PoolManager.pooltype.PlayerBullet);\r\n if (bu) {\r\n SceneController.Instance.bulletCon.addChild(bu);\r\n bu.transform.position = this.bulletPos.position.clone();\r\n bu.transform.localRotationEuler = this.bulletPos.rotationEuler.clone();\r\n let pb = bu.getComponent(PlayerBullet);\r\n if (!pb)\r\n pb = bu.addComponent(PlayerBullet);\r\n pb.StartMove(this.bulletPos, this.isover);\r\n }\r\n }\r\n StopCreate() {\r\n this.isStop = true;\r\n }\r\n Died(pos) {\r\n if (this.dataPar)\r\n this.dataPar[\"ishave\"] = false;\r\n EffectController.Instance.CreateXueEffect(pos);\r\n FriendController.Instance.RemoveGet(this.selfobj);\r\n this.Des();\r\n PlayerController.Instance.CheackGame();\r\n }\r\n SetPar() {\r\n let t = this.tran.position.clone();\r\n PlayerController.Instance.playerContainer.addChild(this.selfobj);\r\n this.tran.position = t.clone();\r\n }\r\n ToStand(pos) {\r\n this.SetPar();\r\n this.tp = pos;\r\n Quaternion.lookAt(pos, this.tran.position, this._up, this.quaternion1);\r\n this.quaternion1.invert(this.quaternion1);\r\n this.tran.rotation = this.quaternion1.clone();\r\n this.PlayAni(AnimatorClip.animator.CrouchFiring, 1);\r\n Laya.timer.frameLoop(1, this, this._TOSTAND);\r\n }\r\n _TOSTAND() {\r\n Vector3.subtract(this.tp, this.tran.position, this.forW);\r\n Vector3.normalize(this.forW, this.forW);\r\n this.forW = new Vector3(this.forW.x * 0.15, this.forW.y * 0.15, this.forW.z * 0.15);\r\n this.tran.translate(this.forW, false);\r\n if (Vector3.distance(this.tran.position, this.tp) < 0.1) {\r\n Laya.timer.clear(this, this._TOSTAND);\r\n let tween = Laya.Tween.to(this.tran, { localRotationEulerY: 0 }, 100, Laya.Ease.quintIn, Laya.Handler.create(this, () => {\r\n tween.clear();\r\n }, null, false));\r\n return;\r\n }\r\n Quaternion.lookAt(this.tp, this.tran.position, this._up, this.quaternion1);\r\n this.quaternion1.invert(this.quaternion1);\r\n this.tran.rotation = this.quaternion1.clone();\r\n }\r\n Dance(sp) {\r\n this.PlayAni(AnimatorClip.animator.RunAndGun, 2);\r\n this.danceP = sp.position.clone();\r\n this.r = sp.rotationEuler.clone();\r\n Laya.timer.frameLoop(1, this, this._Dance);\r\n }\r\n _Dance() {\r\n Vector3.subtract(this.danceP, this.tran.position, this.forW);\r\n Vector3.normalize(this.forW, this.forW);\r\n this.forW = new Vector3(this.forW.x * 0.15, this.forW.y * 0.15, this.forW.z * 0.15);\r\n this.tran.translate(this.forW);\r\n if (Vector3.distance(this.tran.position, this.danceP) < 0.15) {\r\n Laya.timer.clear(this, this._Dance);\r\n this.tran.position = this.danceP.clone();\r\n this.tran.rotationEuler = this.r.clone();\r\n this.PlayAni(AnimatorClip.animator.Dance, 1);\r\n return;\r\n }\r\n Quaternion.lookAt(this.danceP, this.tran.position, this._up, this.quaternion1);\r\n this.quaternion1.invert(this.quaternion1);\r\n this.tran.rotation = this.quaternion1.clone();\r\n }\r\n StartAtkEnemy() {\r\n Laya.timer.clear(this, this._TOSTAND);\r\n this.isover = true;\r\n this.isFristShoot = true;\r\n this.enemyTar = null;\r\n Laya.timer.frameLoop(1, this, this._atkEnemy);\r\n }\r\n _atkEnemy() {\r\n if (this.enemyTar == null) {\r\n this.enemyTar = EnemyController.Instance.PlayerGetEnemy();\r\n if (this.enemyTar != null) {\r\n this.ATKp = this.enemyTar.transform.position.clone();\r\n Quaternion.lookAt(this.ATKp, this.tran.position, this._up, this.quaternion1);\r\n this.quaternion1.invert(this.quaternion1);\r\n this.tran.rotation = this.quaternion1.clone();\r\n }\r\n }\r\n else {\r\n if (!this.enemyTar.active) {\r\n this.enemyTar = EnemyController.Instance.PlayerGetEnemy();\r\n if (this.enemyTar != null) {\r\n this.ATKp = this.enemyTar.transform.position.clone();\r\n Quaternion.lookAt(this.ATKp, this.tran.position, this._up, this.quaternion1);\r\n this.quaternion1.invert(this.quaternion1);\r\n this.tran.rotation = this.quaternion1.clone();\r\n }\r\n }\r\n if (this.enemyTar == null) {\r\n this.StopCreate();\r\n this.isFristShoot = true;\r\n return;\r\n }\r\n if (this.isFristShoot) {\r\n this.isFristShoot = false;\r\n this.CreateBullet();\r\n }\r\n this.ATKp = this.enemyTar.transform.position.clone();\r\n Quaternion.lookAt(this.ATKp, this.tran.position, this._up, this.quaternion1);\r\n this.quaternion1.invert(this.quaternion1);\r\n this.tran.rotation = this.quaternion1.clone();\r\n }\r\n }\r\n Des() {\r\n this.dataPar = null;\r\n FriendController.Instance.RemoveFriend(this.selfobj);\r\n FriendController.Instance.RemoveGet(this.selfobj);\r\n PoolManager.Instance.SetDisableObject(this.selfobj);\r\n Laya.timer.clearAll(this);\r\n Laya.Tween.clearAll(this);\r\n EventManager.off(EventType.Event.StartShot, this, this.CreateBullet);\r\n EventManager.off(EventType.Event.StopShot, this, this.StopCreate);\r\n }\r\n onDestroy() {\r\n }\r\n}\r\n//# sourceMappingURL=Friend.js.map",
  3. "references": [
  4. "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/DefinedType.ts",
  5. "D:/GitProject/GunGang/gungang_laya/gungang/src/Util/Mathf.ts",
  6. "D:/GitProject/GunGang/gungang_laya/gungang/src/Controller/CamController.ts",
  7. "D:/GitProject/GunGang/gungang_laya/gungang/src/game_module/GlobalVariable.ts",
  8. "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/SceneController.ts",
  9. "D:/GitProject/GunGang/gungang_laya/gungang/src/Controller/FriendController.ts",
  10. "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PoolManager.ts",
  11. "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PlayerBullet.ts",
  12. "D:/GitProject/GunGang/gungang_laya/gungang/src/Controller/PlayerController.ts",
  13. "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/EventManager.ts",
  14. "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/EffectController.ts",
  15. "D:/GitProject/GunGang/gungang_laya/gungang/src/Controller/EnemyController.ts",
  16. "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PlayerManager.ts"
  17. ],
  18. "map": "{\"version\":3,\"file\":\"Friend.js\",\"sourceRoot\":\"\",\"sources\":[\"../../../src/GameLogic/Friend.ts\"],\"names\":[],\"mappings\":\"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\"}"
  19. }