{ "code": "import { SceneController } from \"./SceneController\";\r\nimport { GlobalVariable } from \"../game_module/GlobalVariable\";\r\nimport Road from \"./Road\";\r\nimport { PoolManager } from \"./PoolManager\";\r\nimport { PlayerManager } from \"./PlayerManager\";\r\nexport default class RoadController {\r\n constructor() {\r\n this.roadName = \"\";\r\n this.roadList = new Array();\r\n }\r\n static get Instance() {\r\n return RoadController.instance || (RoadController.instance = new RoadController());\r\n }\r\n InitRoad(ischangeRoad = null) {\r\n if (ischangeRoad == true) {\r\n this.ChangeRoad(PlayerManager.Instance.stage);\r\n }\r\n else if (ischangeRoad == null)\r\n this.ChangeRoad(PlayerManager.Instance.stage - 1);\r\n if (this.roadList.length == 0) {\r\n for (let index = 0; index < 4; index++) {\r\n let a = index;\r\n Laya.timer.frameOnce(a + 1, this, this._CreateRoad, [a], false);\r\n }\r\n }\r\n else {\r\n for (let index = 0; index < 4; index++) {\r\n let road = this.roadList[index];\r\n road.transform.localPositionZ = GlobalVariable.roadlong * (1 - index);\r\n }\r\n }\r\n this.tarDis = GlobalVariable.roadlong;\r\n }\r\n _CreateRoad(a) {\r\n let road = PoolManager.Instance.SetActiveObject(this.roadName + a);\r\n if (!road)\r\n return;\r\n this.roadList.push(road);\r\n SceneController.Instance._roadsNode.addChild(road);\r\n let rs = road.addComponent(Road);\r\n road.transform.localPositionZ = GlobalVariable.roadlong * (1 - a);\r\n }\r\n JundgePlayerAtRoad(tar) {\r\n for (let index = 0; index < this.roadList.length; index++) {\r\n const element = this.roadList[index];\r\n let dis = Math.abs(tar.localPositionZ - element.transform.localPositionZ);\r\n if (dis < (GlobalVariable.roadlong >> 1)) {\r\n return element;\r\n }\r\n }\r\n return null;\r\n }\r\n CheckPlayerRoadPos(_zp) {\r\n let d = this.tarDis - _zp;\r\n if (d > 0)\r\n return;\r\n this.SwitchRoad();\r\n }\r\n SwitchRoad() {\r\n this.tarDis = this.tarDis + GlobalVariable.roadlong;\r\n let rs = this.roadList.pop();\r\n rs.transform.localPositionZ = this.tarDis;\r\n this.roadList.unshift(rs);\r\n }\r\n ChangeRoad(lv) {\r\n let t = Math.floor(lv / 10);\r\n let tn;\r\n if (t % 2 == 0)\r\n tn = \"forest\";\r\n else\r\n tn = \"mountain\";\r\n if (tn != this.roadName) {\r\n this.roadName = tn;\r\n for (let index = 0; index < this.roadList.length; index++) {\r\n const element = this.roadList[index];\r\n PoolManager.Instance.SetDisableObject(element);\r\n }\r\n this.roadList = [];\r\n }\r\n }\r\n}\r\n", "references": [ "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/SceneController.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/game_module/GlobalVariable.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/Util/Dictionary.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/Road.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PoolManager.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PlayerController.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/Util/Game_Tool.ts", "D:/GitProject/GunGang/gungang_laya/gungang/src/GameLogic/PlayerManager.ts" ] }