FinishLine.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. var BarrierSuperClass = require("BarrierSuper");
  2. cc.Class({
  3. extends: BarrierSuperClass,
  4. properties: {
  5. bHasCompared: false,
  6. },
  7. start: function () {
  8. this.finshPlayers = [];
  9. this.GmaeStates = cc.find('Canvas').getComponent('GameStates');
  10. this.GameMode = cc.find('Canvas').getComponent('GameMode');
  11. this.GmaeStates.EnterFinishLinePlayersArray = [];
  12. this.GameMode.bHasAddScore = false;
  13. },
  14. onLoad: function () {
  15. this.finshPlayers = [];
  16. this.GmaeStates = cc.find('Canvas').getComponent('GameStates');
  17. this.GameMode = cc.find('Canvas').getComponent('GameMode');
  18. this.GmaeStates.EnterFinishLinePlayersArray = [];
  19. this.GameMode.bHasAddScore = false;
  20. },
  21. onCollisionEnter: function (other) {
  22. if (other.node.name === 'PlayerCollisionLine') {
  23. // console.log("进入了减速区域?");
  24. if (!this.GameMode.bHasAddScore) {
  25. if (other.node.parent.parent.name == "Hero") {
  26. var GameStates = cc.find('Canvas').getComponent('GameStates');
  27. //这里是传给服务器判断的值,比如当前玩家的奔跑时间
  28. // let testDate = new Date();
  29. // let dateTime = testDate.getTime();//获取当前时间(从1970.1.1开始的毫秒数)
  30. // cc.log(dateTime,'当前毫秒数');
  31. //cc.log(GameStates.uploadValue,'==GameStates.uploadValue');
  32. if(GameStates.uploadValue ==0) {
  33. GameStates.uploadValue = cc.find('Hero').x;
  34. }
  35. let inputValue = GameStates.uploadValue;
  36. var finishData = { FunctionName: 'callFinishLine'};
  37. this.GameMode.SynchronizationFun(finishData);
  38. cc.find('test').getComponent(cc.Label).string = inputValue;
  39. let deltaValue = this.GameMode.finishDeltavalue;//毫秒
  40. if (!this.GmaeStates.bServer) {
  41. var data = { FunctionName: 'addScore', PlayerName: 'Hero', value: inputValue ,deltaValue:deltaValue };
  42. this.GameMode.SynchronizationFun(data);
  43. // cc.log("--我是client,我发送给server请求加分--当前项目是"+cc.find('Canvas').getComponent('GameStates').strCureentLevel);
  44. }
  45. else {
  46. this.GameMode.addScore(cc.find('Hero'), inputValue, true,deltaValue)
  47. }
  48. var CurrentPlayerNode = other.node.parent.parent;
  49. this.GmaeStates.EnterFinishLinePlayersArray.push(CurrentPlayerNode);
  50. var data = { FunctionName: 'PushPlayerToEnterFinishLinePlayersArray' };
  51. this.GameMode.SynchronizationFun(data);
  52. //有玩家到终点了
  53. cc.find('Hero').getComponent('HeroControl').playAudioByName("Cheers");
  54. this.SetNextStartLinePositionX();
  55. this.scheduleOnce(function () {
  56. this.ReadyToTransport();
  57. }, 1);
  58. }
  59. }
  60. }
  61. else if (other.node.name == "PlayerCollisionLine_end") {
  62. var CurrentPlayerNode = other.node.parent.parent;
  63. // cc.log("上面先停止");
  64. var CurrentPlayerScript = CurrentPlayerNode.getComponent('HeroControl');
  65. CurrentPlayerScript.ResetSpeed_noType();
  66. }
  67. },
  68. ReadyToTransport: function () {
  69. var GameMode = cc.find('Canvas').getComponent('GameMode');
  70. var GameStates = cc.find('Canvas').getComponent('GameStates');
  71. GameMode.CheckPlayersDistance();
  72. var data = { FunctionName: 'CheckPlayersDistance', StartLinePositionX: GameStates.StartLinePositionX };
  73. GameMode.SynchronizationFun(data);
  74. // cc.log('我向对方发送请求瞬移');
  75. // this.scheduleOnce(function() {
  76. // GameMode.OverPosition();
  77. // }, 1);
  78. // var data = { FunctionName: 'Transport' };
  79. // GameMode.SynchronizationFun(data);
  80. },
  81. SetNextStartLinePositionX: function () {
  82. var GameStates = cc.find('Canvas').getComponent('GameStates');
  83. var LevelScript = cc.find('Level').getComponent('LevelControl');
  84. var GameMode = cc.find('Canvas').getComponent('GameMode');
  85. var CurrentLevel = GameStates.strCureentLevel;
  86. if ('Sprint' == CurrentLevel) {
  87. GameStates.StartLinePositionX = LevelScript.LongJumpStartLinePositionX;
  88. } else if ('LongJump' == CurrentLevel) {
  89. GameStates.StartLinePositionX = LevelScript.HurdleStartLinePositionX;
  90. } else if ('Hurdle' == CurrentLevel) {
  91. GameStates.StartLinePositionX = LevelScript.JavelinStartLinePositionX;
  92. } else if ('Javelin' == CurrentLevel) {
  93. GameStates.StartLinePositionX = LevelScript.RideBikeStartLinePositionX;
  94. }
  95. // cc.log('current level is '+GameStates.strCureentLevel+' and X is '+GameStates.StartLinePositionX);
  96. // else if ('RideBike' == CurrentLevel){
  97. // GameStates.StartLinePositionX = LevelScript.RideBikeStartLinePositionX;
  98. // }
  99. // var data = { FunctionName: 'SetStartLinePositionX', StartLinePositionX: GameStates.StartLinePositionX };
  100. // GameMode.SynchronizationFun(data);
  101. }
  102. });