LevelControl.js 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. cc.Class({
  2. extends: cc.Component,
  3. properties: {
  4. //起点 todo
  5. SprintStartLine:{//短跑起点
  6. default:null,
  7. type:cc.Prefab
  8. },
  9. LongJumpStartLine:{//跳远起点
  10. default:null,
  11. type:cc.Prefab
  12. },
  13. HurdleStartLine:{//跨栏起点
  14. default:null,
  15. type:cc.Prefab
  16. },
  17. JavelinStartLine:{//标枪起点
  18. default:null,
  19. type:cc.Prefab
  20. },
  21. BikeStartLine:{//骑车起点
  22. default:null,
  23. type:cc.Prefab
  24. },
  25. //终点 todo
  26. FinishLine_Sprint:{//短跑终点线
  27. default:null,
  28. type:cc.Prefab
  29. },
  30. LongJumpFinishLine:{//跳远终点
  31. default:null,
  32. type:cc.Prefab
  33. },
  34. FinishLine_Hurdle:{//跨栏终点
  35. default:null,
  36. type:cc.Prefab
  37. },
  38. JavelinFinishLine:{//标枪终点线
  39. default:null,
  40. type:cc.Prefab
  41. },
  42. // BikeFinishLine
  43. FinishLine_Bike:{//骑车终点
  44. default:null,
  45. type:cc.Prefab
  46. },
  47. Hero: {
  48. default: null,
  49. type: cc.Node
  50. },
  51. Canvas: {
  52. default: null,
  53. type: cc.Node
  54. },
  55. Blank:{//空白
  56. default:null,
  57. type:cc.Prefab
  58. },
  59. AccelerationBand30InTheMiddle:{//大加居中
  60. default:null,
  61. type:cc.Prefab
  62. },
  63. Cushion30AndRailingInTheMiddle:{//大缓跨栏居中
  64. default:null,
  65. type:cc.Prefab
  66. },
  67. JavelinModel:{//标枪模型
  68. default:null,
  69. type:cc.Prefab
  70. },
  71. LongAccelerationBand10ColumnTheLeftHalf1:{//长10加前半部分
  72. default:null,
  73. type:cc.Prefab
  74. },
  75. LongAccelerationBand10ColumnTheRightHalf2:{//长10加后半部分
  76. default:null,
  77. type:cc.Prefab
  78. },
  79. JavelinDistanceFirst:{//标枪计距带起点
  80. default:null,
  81. type:cc.Prefab
  82. },
  83. JavelinDistanceMiddle:{//标枪计距带中部10M-100M
  84. default:null,
  85. type:cc.Prefab
  86. },
  87. JavelinDistanceLast:{//标枪计距带尾部110M
  88. default:null,
  89. type:cc.Prefab
  90. },
  91. Cushion30AndBunker1M :{//沙坑1M
  92. default:null,
  93. type:cc.Prefab
  94. },
  95. Bunker2to4M:{//沙坑2-4M
  96. default:null,
  97. type:cc.Prefab
  98. },
  99. Bunker5to7M:{//沙坑5-7M
  100. default:null,
  101. type:cc.Prefab
  102. },
  103. Bunker8to10M:{//沙坑8-10M
  104. default:null,
  105. type:cc.Prefab
  106. },
  107. Bunker11M:{//沙坑11M
  108. default:null,
  109. type:cc.Prefab
  110. },
  111. BikeModelToTheRight:{//自行车模型
  112. default:null,
  113. type:cc.Prefab
  114. },
  115. TwoAcceleration30s:{//两个大加1
  116. default:null,
  117. type:cc.Prefab
  118. },
  119. Acceleration30AndAcceleration20:{//两个大加2
  120. default:null,
  121. type:cc.Prefab
  122. },
  123. Acceleration20ToTheLeft:{//一个大加靠左
  124. default:null,
  125. type:cc.Prefab
  126. },
  127. LongAccelerationBand7Column:{//长7加1
  128. default:null,
  129. type:cc.Prefab
  130. },
  131. LongAccelerationBand10ColumnTheLeftHalf3:{//长10带边框1左半部分
  132. default:null,
  133. type:cc.Prefab
  134. },
  135. LongAccelerationBand10ColumnTheRightHalf4:{//长10带边框1右半部分
  136. default:null,
  137. type:cc.Prefab
  138. },
  139. LongAccelerationBand10ColumnTheLeftHalf5:{//长10带边框2左大半部分
  140. default:null,
  141. type:cc.Prefab
  142. },
  143. LongAccelerationBand10ColumnTheRightHalfAndLeftHalf6:{//长10带边框2右半部分及长10带边框3左小半部分
  144. default:null,
  145. type:cc.Prefab
  146. },
  147. LongAccelerationBand10ColumnTheRightHalf7:{//长10带边框3右半部分
  148. default:null,
  149. type:cc.Prefab
  150. },
  151. LongAccelerationBand10ColumnTheLeftHalf8:{//长10带边框4左半部分
  152. default:null,
  153. type:cc.Prefab
  154. },
  155. LongAccelerationBand10ColumnTheRightHalf9:{//长10带边框4右半部分
  156. default:null,
  157. type:cc.Prefab
  158. },
  159. AccelerationBand20InTheMiddle:{//中加居中
  160. default:null,
  161. type:cc.Prefab
  162. },
  163. AccelerationBand10InTheMiddle:{//小加居中
  164. default:null,
  165. type:cc.Prefab
  166. },
  167. JumpDownBike:{//下自行车
  168. default:null,
  169. type:cc.Prefab
  170. },
  171. JavelinBeginJump:{//标枪起跳
  172. default:null,
  173. type:cc.Prefab
  174. },
  175. LocationLine: {
  176. default: null,
  177. type: cc.Prefab
  178. },
  179. YellowBG: {
  180. default: null,
  181. type: cc.Prefab
  182. },
  183. wriggle_prefab: {
  184. default: null,
  185. type: cc.Prefab
  186. },
  187. javeBg_prefab: {
  188. default: null,
  189. type: cc.Prefab
  190. },
  191. JavalinDistance:0,
  192. PrefabNumLabel: {
  193. default: null,
  194. type: cc.Prefab
  195. },
  196. PlayerInLvIndexLabel: {
  197. default: null,
  198. type: cc.Prefab
  199. },
  200. SprintPrefabsArr:[],
  201. LongJumpPrefabsArr:[],
  202. HurdlePrefabsArr:[],
  203. JavelinPrefabsArr:[],
  204. RideBikePrefabsArr:[],
  205. },
  206. start : function() {
  207. this.PlayerDistance=0;
  208. this.LastLoadedLvIndex=0;
  209. this.TargetNum=720*2;
  210. this.BgPrefabArray=[];
  211. this.AllBgPrefabArray=[];
  212. this.BAllSceneLoaded=false;
  213. this.PlayerInTheZone='None';
  214. this.PrePlayerInLvIndex=0;
  215. this.CurrentPlayerInLvIndex=0;
  216. this.FrontEnableLvIndex=0;
  217. this.TargetNum = 720*3;
  218. this.JavalinDistance=10;
  219. this.SprintPrefabsArr = [
  220. this.Blank,//空白
  221. this.SprintStartLine,//短跑起点
  222. this.AccelerationBand30InTheMiddle,//短跑5个大加
  223. this.AccelerationBand30InTheMiddle,
  224. this.AccelerationBand30InTheMiddle,
  225. this.AccelerationBand30InTheMiddle,
  226. this.AccelerationBand30InTheMiddle,
  227. this.AccelerationBand20InTheMiddle,//3个中加
  228. this.AccelerationBand20InTheMiddle,
  229. this.AccelerationBand20InTheMiddle,
  230. this.FinishLine_Sprint,//终点线
  231. ];
  232. this.LongJumpPrefabsArr = [
  233. this.LongJumpStartLine,//跳远起点
  234. this.AccelerationBand30InTheMiddle,//4个大加
  235. this.AccelerationBand30InTheMiddle,
  236. this.AccelerationBand30InTheMiddle,
  237. this.AccelerationBand30InTheMiddle,
  238. this.AccelerationBand20InTheMiddle,//3个中加
  239. this.AccelerationBand20InTheMiddle,
  240. this.AccelerationBand20InTheMiddle,
  241. this.LongAccelerationBand10ColumnTheLeftHalf1,//长10加前半部分
  242. this.LongAccelerationBand10ColumnTheRightHalf2,//长10加后半部分
  243. this.LongAccelerationBand10ColumnTheLeftHalf1,//长10加前半部分
  244. this.LongAccelerationBand10ColumnTheRightHalf2,//长10加后半部分
  245. this.Cushion30AndBunker1M,//沙坑1M
  246. this.Bunker2to4M,//沙坑2-4M
  247. this.Bunker5to7M,//沙坑5-7M
  248. this.Bunker8to10M,//沙坑8-10M
  249. this.Bunker11M,//沙坑11M
  250. this.LongJumpFinishLine,//终点线
  251. ];
  252. this.HurdlePrefabsArr = [
  253. this.HurdleStartLine,//跨栏起点
  254. this.Blank,//空白
  255. this.AccelerationBand30InTheMiddle,//连续4个大加交替4个大缓跨栏
  256. this.Cushion30AndRailingInTheMiddle,//连续4个大加交替4个大缓跨栏
  257. this.Blank,//空白
  258. this.Blank,//空白
  259. this.AccelerationBand30InTheMiddle,
  260. this.Cushion30AndRailingInTheMiddle,
  261. this.Blank,//空白
  262. this.AccelerationBand30InTheMiddle,
  263. this.Cushion30AndRailingInTheMiddle,
  264. this.Blank,//空白
  265. this.AccelerationBand30InTheMiddle,
  266. this.Cushion30AndRailingInTheMiddle,
  267. this.Blank,//空白
  268. this.AccelerationBand30InTheMiddle,
  269. this.Cushion30AndRailingInTheMiddle,
  270. this.Blank,//空白
  271. this.FinishLine_Hurdle,//终点线
  272. ];
  273. this.JavelinPrefabsArr = [
  274. this.JavelinStartLine,//标枪起点
  275. this.JavelinModel,//标枪模型 vvvvv
  276. this.AccelerationBand30InTheMiddle,//4个大加
  277. this.AccelerationBand30InTheMiddle,
  278. this.AccelerationBand30InTheMiddle,
  279. this.AccelerationBand30InTheMiddle,
  280. this.AccelerationBand20InTheMiddle,//3个中加
  281. this.AccelerationBand20InTheMiddle,
  282. this.AccelerationBand20InTheMiddle,
  283. this.LongAccelerationBand10ColumnTheLeftHalf1,//长10加前半部分
  284. this.LongAccelerationBand10ColumnTheRightHalf2,//长10加后半部分
  285. this.LongAccelerationBand10ColumnTheLeftHalf1,//长10加前半部分
  286. this.LongAccelerationBand10ColumnTheRightHalf2,//长10加后半部分
  287. this.javeBg_prefab,//起跳
  288. this.JavelinDistanceFirst,//标枪距离计算起点
  289. this.JavelinDistanceMiddle,//标枪距离计算中间部分共10个
  290. this.JavelinDistanceMiddle,
  291. this.JavelinDistanceMiddle,
  292. this.JavelinDistanceMiddle,
  293. this.JavelinDistanceMiddle,
  294. this.JavelinDistanceMiddle,
  295. this.JavelinDistanceMiddle,
  296. this.JavelinDistanceMiddle,
  297. this.JavelinDistanceMiddle,
  298. this.JavelinDistanceMiddle,
  299. this.JavelinDistanceLast,//标枪距离计算末尾部分*/
  300. this.JavelinFinishLine,//终点线
  301. ];
  302. this.RideBikePrefabsArr = [
  303. this.BikeStartLine,//骑车起点
  304. this.BikeModelToTheRight,//自行车模型
  305. this.TwoAcceleration30s,//3个大加2个中加
  306. this.Acceleration30AndAcceleration20,//
  307. this.Acceleration20ToTheLeft,//
  308. this.LongAccelerationBand7Column,//1个长7
  309. this.LongAccelerationBand10ColumnTheLeftHalf3,//4个长10
  310. this.LongAccelerationBand10ColumnTheRightHalf4,//
  311. this.LongAccelerationBand10ColumnTheLeftHalf5,//
  312. this.LongAccelerationBand10ColumnTheRightHalfAndLeftHalf6,//
  313. this.LongAccelerationBand10ColumnTheRightHalf7,//
  314. this.LongAccelerationBand10ColumnTheLeftHalf8,//
  315. this.LongAccelerationBand10ColumnTheRightHalf9,//
  316. this.Blank,//
  317. this.FinishLine_Bike,//终点线
  318. ];
  319. this.AllLevel = [
  320. this.SprintPrefabsArr,
  321. this.LongJumpPrefabsArr,
  322. this.HurdlePrefabsArr,
  323. this.JavelinPrefabsArr,
  324. this.RideBikePrefabsArr,
  325. ];
  326. this.AllBgPrefabArray = [
  327. // 短跑
  328. this.Blank,//空白
  329. this.SprintStartLine,//短跑起点
  330. this.AccelerationBand30InTheMiddle,//短跑5个大加
  331. this.AccelerationBand30InTheMiddle,
  332. this.AccelerationBand30InTheMiddle,
  333. this.AccelerationBand30InTheMiddle,
  334. this.AccelerationBand30InTheMiddle,
  335. this.AccelerationBand20InTheMiddle,//3个中加
  336. this.AccelerationBand20InTheMiddle,
  337. this.AccelerationBand20InTheMiddle,
  338. this.FinishLine_Sprint,//终点线
  339. // 跳远
  340. this.LongJumpStartLine,//跳远起点
  341. this.AccelerationBand30InTheMiddle,//4个大加
  342. this.AccelerationBand30InTheMiddle,
  343. this.AccelerationBand30InTheMiddle,
  344. this.AccelerationBand30InTheMiddle,
  345. this.AccelerationBand20InTheMiddle,//3个中加
  346. this.AccelerationBand20InTheMiddle,
  347. this.AccelerationBand20InTheMiddle,
  348. this.LongAccelerationBand10ColumnTheLeftHalf1,//长10加前半部分
  349. this.LongAccelerationBand10ColumnTheRightHalf2,//长10加后半部分
  350. this.LongAccelerationBand10ColumnTheLeftHalf1,//长10加前半部分
  351. this.LongAccelerationBand10ColumnTheRightHalf2,//长10加后半部分
  352. this.Cushion30AndBunker1M,//沙坑1M
  353. this.Bunker2to4M,//沙坑2-4M
  354. this.Bunker5to7M,//沙坑5-7M
  355. this.Bunker8to10M,//沙坑8-10M
  356. this.Bunker11M,//沙坑11M
  357. this.LongJumpFinishLine,//终点线
  358. // 跨栏
  359. this.HurdleStartLine,//跨栏起点
  360. this.Blank,//空白
  361. this.AccelerationBand30InTheMiddle,//连续4个大加交替4个大缓跨栏
  362. this.Cushion30AndRailingInTheMiddle,//连续4个大加交替4个大缓跨栏
  363. this.Blank,//空白
  364. this.Blank,//空白
  365. this.AccelerationBand30InTheMiddle,
  366. this.Cushion30AndRailingInTheMiddle,
  367. this.Blank,//空白
  368. this.AccelerationBand30InTheMiddle,
  369. this.Cushion30AndRailingInTheMiddle,
  370. this.Blank,//空白
  371. this.AccelerationBand30InTheMiddle,
  372. this.Cushion30AndRailingInTheMiddle,
  373. this.Blank,//空白
  374. this.AccelerationBand30InTheMiddle,
  375. this.Cushion30AndRailingInTheMiddle,
  376. this.Blank,//空白
  377. this.FinishLine_Hurdle,//终点线
  378. // 标枪
  379. this.JavelinStartLine,//标枪起点
  380. this.JavelinModel,//标枪模型 vvvvv
  381. this.AccelerationBand30InTheMiddle,//4个大加
  382. this.AccelerationBand30InTheMiddle,
  383. this.AccelerationBand30InTheMiddle,
  384. this.AccelerationBand30InTheMiddle,
  385. this.AccelerationBand20InTheMiddle,//3个中加
  386. this.AccelerationBand20InTheMiddle,
  387. this.AccelerationBand20InTheMiddle,
  388. this.LongAccelerationBand10ColumnTheLeftHalf1,//长10加前半部分
  389. this.LongAccelerationBand10ColumnTheRightHalf2,//长10加后半部分
  390. this.LongAccelerationBand10ColumnTheLeftHalf1,//长10加前半部分
  391. this.LongAccelerationBand10ColumnTheRightHalf2,//长10加后半部分
  392. this.javeBg_prefab,//起跳
  393. this.JavelinDistanceFirst,//标枪距离计算起点
  394. this.JavelinDistanceMiddle,//标枪距离计算中间部分共10个
  395. this.JavelinDistanceMiddle,
  396. this.JavelinDistanceMiddle,
  397. this.JavelinDistanceMiddle,
  398. this.JavelinDistanceMiddle,
  399. this.JavelinDistanceMiddle,
  400. this.JavelinDistanceMiddle,
  401. this.JavelinDistanceMiddle,
  402. this.JavelinDistanceMiddle,
  403. this.JavelinDistanceMiddle,
  404. this.JavelinDistanceLast,//标枪距离计算末尾部分*/
  405. this.JavelinFinishLine,//终点线
  406. //骑车
  407. this.BikeStartLine,//骑车起点
  408. this.BikeModelToTheRight,//自行车模型
  409. this.TwoAcceleration30s,//3个大加2个中加
  410. this.Acceleration30AndAcceleration20,//
  411. this.Acceleration20ToTheLeft,//
  412. this.LongAccelerationBand7Column,//1个长7
  413. this.LongAccelerationBand10ColumnTheLeftHalf3,//4个长10
  414. this.LongAccelerationBand10ColumnTheRightHalf4,//
  415. this.LongAccelerationBand10ColumnTheLeftHalf5,//
  416. this.LongAccelerationBand10ColumnTheRightHalfAndLeftHalf6,//
  417. this.LongAccelerationBand10ColumnTheRightHalf7,//
  418. this.LongAccelerationBand10ColumnTheLeftHalf8,//
  419. this.LongAccelerationBand10ColumnTheRightHalf9,//
  420. this.Blank,//
  421. this.FinishLine_Bike,//终点线
  422. // this.Blank,//
  423. // this.Blank,//
  424. // this.Blank,//
  425. ];
  426. for (var i = 0; i < 4; i++)
  427. {
  428. this.LastLoadedLvIndex = i + 1;
  429. var tPrefab = cc.instantiate(this.AllBgPrefabArray[i]);
  430. this.setStartLine(tPrefab);
  431. tPrefab.parent = this.node;
  432. tPrefab.setAnchorPoint(0.5, 0.5);
  433. tPrefab.setLocalZOrder(-i);
  434. tPrefab.setPosition(i * (740), 0);
  435. this.BgPrefabArray.push(tPrefab);
  436. // this.AddIndexLabelToPrefab(i*(720));//此为预制体添加数字标签,正式项目可注释
  437. // cc.log('i = '+i+' and position = '+i * (740)+' and prefabName is '+tPrefab.name);
  438. }
  439. this.PreLoad();
  440. cc.log("地图加载完毕",this.BgPrefabArray);
  441. this.schedule(function () {
  442. // cc.log('/************************ and herox is '+cc.find('Hero').position.x);
  443. }, 1, 0);
  444. },
  445. GetRandomLevelNum:function(){
  446. var RandomLevelNum = Math.floor(Math.random() * 5);
  447. return RandomLevelNum;
  448. },
  449. LoadRandomLevel:function(RandomLevelNum){
  450. this.AllBgPrefabArray = this.AllLevel[RandomLevelNum];
  451. },
  452. PreLoad:function(){
  453. var aPrefab = cc.instantiate(this.YellowBG);//开始时加载一个长加速带的黄色区域,后面再次加载就不会卡
  454. aPrefab.parent = this.node;
  455. aPrefab.setPosition(-1000,1000);
  456. aPrefab.destroy();
  457. },
  458. SetDistance:function(aPlayerDistance)
  459. {
  460. this.PlayerDistance=aPlayerDistance;
  461. },
  462. SetLocationLine:function(PlayerCollisionLinePosition)
  463. {
  464. var aPrefab = cc.instantiate(this.LocationLine);
  465. aPrefab.parent = this.node;
  466. aPrefab.setPosition(PlayerCollisionLinePosition);
  467. },
  468. CreateYellowBG:function(PlayerCollisionLinePosition)
  469. {
  470. var aPrefab = cc.instantiate(this.YellowBG);
  471. aPrefab.parent = this.node;
  472. // aPrefab.setAnchorPoint(0.5, 0.5);
  473. aPrefab.setPosition(PlayerCollisionLinePosition);
  474. return aPrefab;
  475. },
  476. hidePKScore : function (player)
  477. {//显示隐藏比分
  478. // if(player.name === 'Hero')
  479. // {
  480. // var MyScore = cc.find('Hero').getComponent("PlayerState").TerminalPoint;
  481. // var RivalScore = cc.find('Rivel').getComponent("PlayerState").TerminalPoint;
  482. // if (MyScore == 0 && RivalScore==0)
  483. // {
  484. // return;
  485. // }
  486. // cc.find('UIControl').getComponent('GameUI').hideTimerMiddlePKScore(MyScore,RivalScore,3);
  487. // }
  488. },
  489. sortNumber : function (a,b)
  490. {
  491. return b-a
  492. },
  493. update : function (dt)
  494. {
  495. // cc.log(this.AllBgPrefabArray);
  496. if(this.AllBgPrefabArray.length ==this.LastLoadedLvIndex) {
  497. // return;
  498. // var RandomNum = this.GetRandomLevelNum();
  499. // cc.log('RandomNum is '+RandomNum);
  500. // this.LoadRandomLevel(RandomNum);
  501. this.LastLoadedLvIndex = 0;
  502. // for (var i = 0; i < 4; i++)
  503. // {
  504. // this.LastLoadedLvIndex = i + 1;
  505. // var tPrefab = cc.instantiate(this.AllBgPrefabArray[i]);
  506. // this.setStartLine(tPrefab);
  507. // tPrefab.parent = this.node;
  508. // tPrefab.setAnchorPoint(0.5, 0.5);
  509. // tPrefab.setLocalZOrder(-i);
  510. // tPrefab.setPosition(i * (740), 0);
  511. // this.BgPrefabArray.push(tPrefab);
  512. // // this.AddIndexLabelToPrefab(i*(720));//此为预制体添加数字标签,正式项目可注释
  513. // }
  514. }
  515. var MaxPositionX = 0;
  516. var MiniPosiitonX = 0;
  517. var HeroPositionX = cc.find('Hero').position.x;
  518. // var RivelPositionX = cc.find('Rivel').position.x;
  519. var JavalinHero = cc.find('javetemp_Hero');
  520. var JavalinHeroPositionX = 0;
  521. // var JavalinRivel = cc.find('javetemp_Rivel');
  522. // var JavalinRivelPositionX = 0;
  523. var arr = [];
  524. if(JavalinHero!=null )
  525. {
  526. // if (JavalinHero!=null && JavalinRivel!=null ) {
  527. //
  528. // if (JavalinHero.isTag) {
  529. // JavalinHeroPositionX = JavalinHero.position.x;
  530. // arr.push(JavalinHeroPositionX);
  531. // }
  532. // if (JavalinRivel.isTag) {
  533. // JavalinRivelPositionX = JavalinRivel.position.x;
  534. // arr.push(JavalinRivelPositionX);
  535. // }
  536. //
  537. // arr.push(HeroPositionX);
  538. // arr.push(RivelPositionX);
  539. //
  540. // }
  541. if (JavalinHero!=null) {
  542. if (JavalinHero.isTag) {
  543. JavalinHeroPositionX = JavalinHero.position.x;
  544. arr.push(JavalinHeroPositionX);
  545. }
  546. arr.push(HeroPositionX);
  547. // arr.push(RivelPositionX);
  548. }
  549. // else if (JavalinRivel!=null) {
  550. // if (JavalinRivel.isTag) {
  551. // JavalinRivelPositionX = JavalinRivel.position.x;
  552. // arr.push(JavalinRivelPositionX);
  553. // }
  554. // arr.push(HeroPositionX);
  555. // arr.push(RivelPositionX);
  556. // }
  557. //冒泡排序 HeroPositionX RivelPositionX JavalinHeroPositionX JavalinRivelPositionX
  558. arr.sort(this.sortNumber);
  559. MaxPositionX = arr[0];
  560. MiniPosiitonX =arr[arr.length-1];
  561. CustomLog("现在的数组是","max",MaxPositionX,"min",MiniPosiitonX);
  562. CustomLog("现在的数组是","arr",arr.length);
  563. }
  564. else
  565. {
  566. MaxPositionX = HeroPositionX;
  567. }
  568. var csPositionX = MaxPositionX+370;
  569. // this.CurrentPlayerInLvIndex = Math.floor(csPositionX/720);
  570. // var MiniPosiitonX = cc.find('Hero').position.x;
  571. // var csPositionX = cc.find('Hero').position.x+360;
  572. this.CurrentPlayerInLvIndex = Math.floor(csPositionX/740);
  573. if(this.LastLoadedLvIndex-this.CurrentPlayerInLvIndex<2 &&
  574. this.CurrentPlayerInLvIndex!=this.PrePlayerInLvIndex)
  575. {
  576. this.LastLoadedLvIndex++;
  577. // CustomLog("这个对象",this.BgPrefabArray[this.BgPrefabArray.length-1]);
  578. var LastLvPositionX = this.BgPrefabArray[this.BgPrefabArray.length - 1].position.x;
  579. var NewLvPositionX = LastLvPositionX + 740;
  580. // cc.log('this.LastLoadedLvIndex-1 is '+this.LastLoadedLvIndex);
  581. // cc.log('this.AllBgPrefabArray.length is '+this.AllBgPrefabArray.length);
  582. var tPrefab = cc.instantiate(this.AllBgPrefabArray[this.LastLoadedLvIndex-1]);
  583. // cc.log(this.AllBgPrefabArray[this.LastLoadedLvIndex].name+"======name"+this.LastLoadedLvIndex);
  584. tPrefab.parent = this.node;
  585. tPrefab.setAnchorPoint(0.5, 0.5);
  586. tPrefab.setLocalZOrder(-this.LastLoadedLvIndex);
  587. tPrefab.setPosition(NewLvPositionX, 0);
  588. // this.BgPrefabArray.shift().destroy();
  589. this.BgPrefabArray.push(tPrefab);
  590. // cc.log(tPrefab.name+"======name");
  591. if (tPrefab.name == 'JavelinDistanceMiddle') {
  592. var aLabel = tPrefab.getChildByName("JavelinDistanceNUM");
  593. var Labelcomp = aLabel.getComponent(cc.Label);
  594. Labelcomp.string = this.JavalinDistance.toString();
  595. this.JavalinDistance += 10;
  596. }
  597. this.setStartLine(tPrefab);
  598. // this.AddIndexLabelToPrefab(NewLvPositionX);//此为预制体添加数字标签,正式项目可注释
  599. }
  600. this.PrePlayerInLvIndex = this.CurrentPlayerInLvIndex;
  601. var MiniPlayerInIndex = Math.floor(MiniPosiitonX/740);
  602. // CustomLog("现在的数组是 索引",this.FrontEnableLvIndex);
  603. if(MiniPlayerInIndex-this.FrontEnableLvIndex>2)
  604. {
  605. this.BgPrefabArray[this.FrontEnableLvIndex].destroy();
  606. this.FrontEnableLvIndex++;
  607. }
  608. },
  609. AddIndexLabelToPrefab:function(NewLvPositionX)
  610. {
  611. /** **/
  612. var PrefabNumLabelInstance = cc.instantiate(this.PrefabNumLabel);
  613. PrefabNumLabelInstance.parent = this.node;
  614. PrefabNumLabelInstance.setAnchorPoint(0, 0.5);
  615. PrefabNumLabelInstance.setLocalZOrder(1000);
  616. PrefabNumLabelInstance.setPosition(NewLvPositionX, 0);
  617. this.BgPrefabArray.push(PrefabNumLabelInstance);
  618. PrefabNumLabelInstance.getChildByName('MyNumLeft').getComponent(cc.Label).string = 'Left ' + this.LastLoadedLvIndex;
  619. PrefabNumLabelInstance.getChildByName('MyNumRight').getComponent(cc.Label).string = 'Right ' + this.LastLoadedLvIndex;
  620. /** **/
  621. },
  622. setP : function (tPrefab)
  623. {
  624. if (tPrefab.getChildByName("New Node")!=null)
  625. {
  626. if (tPrefab.getChildByName("New Node").getComponent(cc.RigidBody)!=null) {
  627. // CustomLog("gangti",tPrefab);
  628. tPrefab.getChildByName("New Node").getComponent(cc.RigidBody).syncPosition();
  629. }
  630. }
  631. },
  632. /**
  633. * 这个是设置 每一个 项目开头的 位置的方法
  634. */
  635. setStartLine : function (node) {
  636. switch (node.name){
  637. case "SprintStartLine":
  638. this.tempStartNode = 0;
  639. cc.log("现在是什么开始",node.name);
  640. break;
  641. case "LongJumpStartLine":
  642. this.tempStartNode = 1;
  643. cc.log("现在是什么开始",node.name);
  644. break;
  645. case "HurdleStartLine":
  646. this.tempStartNode = 2;
  647. cc.log("现在是什么开始",node.name);
  648. break;
  649. case "JavelinStartLine":
  650. this.tempStartNode = 3;
  651. cc.log("现在是什么开始",node.name);
  652. break;
  653. case "BikeStartLine":
  654. this.tempStartNode = 4;
  655. cc.log("现在是什么开始",node.name);
  656. break;
  657. }
  658. }
  659. });