tanhuang.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. (function() {
  2. var nodeEnv = typeof require !== 'undefined' && typeof process !== 'undefined';
  3. var __module = nodeEnv ? module : {exports:{}};
  4. var __filename = 'preview-scripts/assets/Script/tanhuang.js';
  5. var __require = nodeEnv ? function (request) {
  6. return cc.require(request);
  7. } : function (request) {
  8. return __quick_compile_project__.require(request, __filename);
  9. };
  10. function __define (exports, require, module) {
  11. if (!nodeEnv) {__quick_compile_project__.registerModule(__filename, module);}"use strict";
  12. cc._RF.push(module, 'aa287RDrGdFu4EArMpW55C/', 'tanhuang');
  13. // Script/tanhuang.ts
  14. "use strict";
  15. var __extends = (this && this.__extends) || (function () {
  16. var extendStatics = function (d, b) {
  17. extendStatics = Object.setPrototypeOf ||
  18. ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
  19. function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
  20. return extendStatics(d, b);
  21. };
  22. return function (d, b) {
  23. extendStatics(d, b);
  24. function __() { this.constructor = d; }
  25. d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
  26. };
  27. })();
  28. var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
  29. var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
  30. if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
  31. else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
  32. return c > 3 && r && Object.defineProperty(target, key, r), r;
  33. };
  34. Object.defineProperty(exports, "__esModule", { value: true });
  35. var Global_1 = require("./Global");
  36. var _a = cc._decorator, ccclass = _a.ccclass, property = _a.property;
  37. var tanhuang = /** @class */ (function (_super) {
  38. __extends(tanhuang, _super);
  39. function tanhuang() {
  40. var _this = _super !== null && _super.apply(this, arguments) || this;
  41. /**
  42. * 落脚点类型 2:tanhuang
  43. */
  44. _this.KIND_FootHold = 2;
  45. /**
  46. * player是否落在落脚点上,默认false,没有
  47. */
  48. _this.isHold = false;
  49. _this.NodeH = 60;
  50. _this.GoUp = false;
  51. _this.gainSc = false; //弹簧加分标志
  52. _this.main = null;
  53. /**
  54. * 落脚点对应动画
  55. */
  56. _this.Ani = null;
  57. _this.AniState = null;
  58. return _this;
  59. }
  60. tanhuang.prototype.onLoad = function () {
  61. this.node.y = -500;
  62. this.node.x = (Math.random() * 2 - 1) * 140;
  63. this.Ani = this.node.getComponent(cc.Animation);
  64. this.gainSc = false;
  65. };
  66. tanhuang.prototype.start = function () {
  67. this.Ding = this.main.node.getChildByName("BgNode").getChildByName("LifeDing").getChildByName("ding");
  68. };
  69. tanhuang.prototype.update = function (dt) {
  70. // console.log(Global.instance.CollisionFlag);
  71. var self = this;
  72. if (Global_1.default.instance.OverFlag) {
  73. self.enabled = false;
  74. }
  75. else {
  76. this.node.active = true;
  77. this.node.y += Global_1.default.instance.FHFallSpeed;
  78. if (this.node.isHold) {
  79. Global_1.default.instance.CollisionFlag = true;
  80. Global_1.default.instance.TheHolder = this.node;
  81. }
  82. if (this.node.y > 360) {
  83. if (this.node.isHold) {
  84. Global_1.default.instance.CollisionFlag = false;
  85. this.node.isHold = false;
  86. }
  87. this.node.destroy();
  88. }
  89. }
  90. };
  91. /**
  92. * 初始化函数
  93. * @param main 主场景
  94. */
  95. tanhuang.prototype.init = function (main) {
  96. this.main = main;
  97. };
  98. /**
  99. * 获取落脚点类型
  100. */
  101. tanhuang.prototype.getKind = function () {
  102. return this.KIND_FootHold;
  103. };
  104. /**
  105. * 碰撞
  106. * @param other 碰撞主体player
  107. * @param self 碰撞主体落脚点tanhuang
  108. */
  109. tanhuang.prototype.onCollisionEnter = function (other, self) {
  110. var rootself = this;
  111. if (rootself.GoUp) {
  112. return;
  113. }
  114. if (rootself.main == null) {
  115. rootself.main = Global_1.default.instance.getMN();
  116. }
  117. if (other.tag === 111) {
  118. if (rootself.gainSc == false) {
  119. rootself.main.Score();
  120. rootself.gainSc = true;
  121. rootself.GoUp = true;
  122. }
  123. return;
  124. }
  125. else {
  126. Global_1.default.instance.KIND_FootHold = rootself.KIND_FootHold;
  127. if (!Global_1.default.instance.CollisionFlag) {
  128. Global_1.default.instance.CollisionFlag = true;
  129. Global_1.default.instance.TheHolder = rootself.node;
  130. rootself.isHold = true;
  131. other.node.y = self.node.y + 60;
  132. var spawn = void 0;
  133. spawn = cc.spawn(cc.callFunc(function () {
  134. if (rootself.Ani == null) {
  135. return;
  136. }
  137. rootself.AniState = rootself.Ani.play("tanhuang");
  138. rootself.AniState.speed = 0.8;
  139. }), cc.callFunc(function () {
  140. other.node.runAction(cc.moveBy(0.15, 0, 50));
  141. Global_1.default.instance.CollisionFlag = false;
  142. rootself.isHold = false;
  143. other.node.getComponent("Playcontroler").enabled = false;
  144. }));
  145. rootself.scheduleOnce(function () {
  146. other.node.getComponent("Playcontroler").enabled = true;
  147. }, 0.27);
  148. rootself.scheduleOnce(function () {
  149. // console.log(Global.instance.CollisionFlag+"5")
  150. Global_1.default.instance.CollisionFlag = false;
  151. rootself.isHold = false;
  152. rootself.Ani.stop();
  153. }, 0.41);
  154. other.node.runAction(spawn);
  155. }
  156. }
  157. };
  158. __decorate([
  159. property(Boolean)
  160. ], tanhuang.prototype, "isHold", void 0);
  161. __decorate([
  162. property(Number)
  163. ], tanhuang.prototype, "NodeH", void 0);
  164. tanhuang = __decorate([
  165. ccclass
  166. ], tanhuang);
  167. return tanhuang;
  168. }(cc.Component));
  169. exports.default = tanhuang;
  170. cc._RF.pop();
  171. }
  172. if (nodeEnv) {
  173. __define(__module.exports, __require, __module);
  174. }
  175. else {
  176. __quick_compile_project__.registerModuleFunc(__filename, function () {
  177. __define(__module.exports, __require, __module);
  178. });
  179. }
  180. })();
  181. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFzc2V0c1xcU2NyaXB0XFx0YW5odWFuZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxtQ0FBOEI7QUFFeEIsSUFBQSxLQUFzQixFQUFFLENBQUMsVUFBVSxFQUFsQyxPQUFPLGFBQUEsRUFBRSxRQUFRLGNBQWlCLENBQUM7QUFHMUM7SUFBc0MsNEJBQVk7SUFBbEQ7UUFBQSxxRUFxSUM7UUFwSUc7O1dBRUc7UUFDSyxtQkFBYSxHQUFHLENBQUMsQ0FBQztRQUMxQjs7V0FFRztRQUVJLFlBQU0sR0FBRyxLQUFLLENBQUM7UUFLZixXQUFLLEdBQVUsRUFBRSxDQUFDO1FBRXpCLFVBQUksR0FBRyxLQUFLLENBQUM7UUFFTCxZQUFNLEdBQUcsS0FBSyxDQUFDLENBQUEsUUFBUTtRQUN2QixVQUFJLEdBQWEsSUFBSSxDQUFDO1FBQzlCOztXQUVHO1FBQ0gsU0FBRyxHQUFnQixJQUFJLENBQUM7UUFDeEIsY0FBUSxHQUFHLElBQUksQ0FBQzs7SUE2R3BCLENBQUM7SUExR0cseUJBQU0sR0FBTjtRQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFDLENBQUMsR0FBQyxDQUFDLENBQUMsR0FBQyxHQUFHLENBQUM7UUFDdkMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDeEIsQ0FBQztJQUVELHdCQUFLLEdBQUw7UUFDSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFB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QUMsTUFBTSxDQUFDOzJDQUNRO0lBZFIsUUFBUTtRQUQ1QixPQUFPO09BQ2EsUUFBUSxDQXFJNUI7SUFBRCxlQUFDO0NBcklELEFBcUlDLENBcklxQyxFQUFFLENBQUMsU0FBUyxHQXFJakQ7a0JBcklvQixRQUFRIiwiZmlsZSI6IiIsInNvdXJjZVJvb3QiOiIvIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IE1haW5TY2VuZSBmcm9tIFwiLi9NYWluU2NlbmVcIjtcclxuaW1wb3J0IEdsb2JhbCBmcm9tIFwiLi9HbG9iYWxcIjtcclxuXHJcbmNvbnN0IHtjY2NsYXNzLCBwcm9wZXJ0eX0gPSBjYy5fZGVjb3JhdG9yO1xyXG5cclxuQGNjY2xhc3NcclxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgdGFuaHVhbmcgZXh0ZW5kcyBjYy5Db21wb25lbnQge1xyXG4gICAgLyoqXHJcbiAgICAgKiDokL3ohJrngrnnsbvlnosgMu+8mnRhbmh1YW5nXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgS0lORF9Gb290SG9sZCA9IDI7XHJcbiAgICAvKipcclxuICAgICAqIHBsYXllcuaYr+WQpuiQveWcqOiQveiEmueCueS4iu+8jOm7mOiupGZhbHNl77yM5rKh5pyJXHJcbiAgICAgKi9cclxuICAgIEBwcm9wZXJ0eShCb29sZWFuKVxyXG4gICAgcHVibGljIGlzSG9sZCA9IGZhbHNlO1xyXG5cclxuXHJcbiAgICBcclxuICAgIEBwcm9wZXJ0eShOdW1iZXIpXHJcbiAgICBwdWJsaWMgTm9kZUg6bnVtYmVyID0gNjA7XHJcblxyXG4gICAgR29VcCA9IGZhbHNlO1xyXG5cclxuICAgIHByaXZhdGUgZ2FpblNjID0gZmFsc2U7Ly/lvLnnsKfliqDliIbmoIflv5dcclxuICAgIHByaXZhdGUgbWFpbjpNYWluU2NlbmUgPSBudWxsO1xyXG4gICAgLyoqXHJcbiAgICAgKiDokL3ohJrngrnlr7nlupTliqjnlLtcclxuICAgICAqL1xyXG4gICAgQW5pOmNjLkFuaW1hdGlvbiA9IG51bGw7XHJcbiAgICBBbmlTdGF0ZSA9IG51bGw7XHJcbiAgICBEaW5nO1xyXG5cclxuICAgIG9uTG9hZCAoKSB7XHJcbiAgICAgICAgdGhpcy5ub2RlLnkgPSAtNTAwO1xyXG4gICAgICAgIHRoaXMubm9kZS54ID0gKCBNYXRoLnJhbmRvbSgpKjItMSkqMTQwO1xyXG4gICAgICAgIHRoaXMuQW5pID0gdGhpcy5ub2RlLmdldENvbXBvbmVudChjYy5BbmltYXRpb24pO1xyXG4gICAgICAgIHRoaXMuZ2FpblNjID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhcnQgKCkge1xyXG4gICAgICAgIHRoaXMuRGluZyA9IHRoaXMubWFpbi5ub2RlLmdldENoaWxkQnlOYW1lKFwiQmdOb2RlXCIpLmdldENoaWxkQnlOYW1lKFwiTGlmZURpbmdcIikuZ2V0Q2hpbGRCeU5hbWUoXCJkaW5nXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZSAoZHQpIHtcclxuICAgICAgICAvLyBjb25zb2xlLmxvZyhHbG9iYWwuaW5zdGFuY2UuQ29sbGlzaW9uRmxhZyk7XHJcbiAgICAgICAgbGV0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIGlmKEdsb2JhbC5pbnN0YW5jZS5PdmVyRmxhZyl7XHJcbiAgICAgICAgICAgIHNlbGYuZW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLm5vZGUuYWN0aXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5ub2RlLnkgKz0gR2xvYmFsLmluc3RhbmNlLkZIRmFsbFNwZWVkO1xyXG4gICAgICAgICAgICBpZih0aGlzLm5vZGUuaXNIb2xkKXtcclxuICAgICAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5Db2xsaXNpb25GbGFnID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5UaGVIb2xkZXIgPSB0aGlzLm5vZGU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYodGhpcy5ub2RlLnk+MzYwKXtcclxuICAgICAgICAgICAgICAgIGlmKHRoaXMubm9kZS5pc0hvbGQpe1xyXG4gICAgICAgICAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5Db2xsaXNpb25GbGFnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlLmlzSG9sZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5ub2RlLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiDliJ3lp4vljJblh73mlbBcclxuICAgICAqIEBwYXJhbSBtYWluIOS4u+WcuuaZr1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5pdChtYWluOk1haW5TY2VuZSl7XHJcbiAgICAgICAgdGhpcy5tYWluID0gbWFpbjtcclxuICAgIH1cclxuICAgIC8qKlxyXG4gICAgICog6I635Y+W6JC96ISa54K557G75Z6LXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRLaW5kKCl7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuS0lORF9Gb290SG9sZDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIOeisOaSnlxyXG4gICAgICogQHBhcmFtIG90aGVyIOeisOaSnuS4u+S9k3BsYXllclxyXG4gICAgICogQHBhcmFtIHNlbGYg56Kw5pKe5Li75L2T6JC96ISa54K5dGFuaHVhbmdcclxuICAgICAqL1xyXG5cclxuICAgIG9uQ29sbGlzaW9uRW50ZXIob3RoZXIsc2VsZil7XHJcbiAgICAgICAgXHJcbiAgICAgICAgbGV0IHJvb3RzZWxmID0gdGhpcztcclxuICAgICAgICBpZihyb290c2VsZi5Hb1VwKXtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihyb290c2VsZi5tYWluID09bnVsbCl7XHJcbiAgICAgICAgICAgIHJvb3RzZWxmLm1haW4gPSBHbG9iYWwuaW5zdGFuY2UuZ2V0TU4oKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYob3RoZXIudGFnPT09MTExKXtcclxuICAgICAgICAgICAgaWYocm9vdHNlbGYuZ2FpblNjPT1mYWxzZSl7XHJcbiAgICAgICAgICAgICAgICByb290c2VsZi5tYWluLlNjb3JlKCk7XHJcbiAgICAgICAgICAgICAgICByb290c2VsZi5nYWluU2MgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgcm9vdHNlbGYuR29VcCA9IHRydWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNle1xyXG4gICAgICAgICAgICBHbG9iYWwuaW5zdGFuY2UuS0lORF9Gb290SG9sZCA9IHJvb3RzZWxmLktJTkRfRm9vdEhvbGQ7XHJcbiAgICAgICAgICAgIGlmKCFHbG9iYWwuaW5zdGFuY2UuQ29sbGlzaW9uRmxhZyl7XHJcbiAgICAgICAgICAgICAgICBHbG9iYWwuaW5zdGFuY2UuQ29sbGlzaW9uRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBHbG9iYWwuaW5zdGFuY2UuVGhlSG9sZGVyID0gcm9vdHNlbGYubm9kZTtcclxuICAgICAgICAgICAgICAgIHJvb3RzZWxmLmlzSG9sZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBvdGhlci5ub2RlLnkgPSBzZWxmLm5vZGUueSs2MDtcclxuICAgICAgICAgICAgICAgIGxldCBzcGF3bjtcclxuICAgICAgICAgICAgICAgIHNwYXduID0gY2Muc3Bhd24oY2MuY2FsbEZ1bmMoZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgICAgICBpZihyb290c2VsZi5Bbmk9PW51bGwpe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJvb3RzZWxmLkFuaVN0YXRlID0gcm9vdHNlbGYuQW5pLnBsYXkoXCJ0YW5odWFuZ1wiKTtcclxuICAgICAgICAgICAgICAgICAgICByb290c2VsZi5BbmlTdGF0ZS5zcGVlZCA9IDAuODtcclxuICAgICAgICAgICAgICAgIH0pLGNjLmNhbGxGdW5jKGZ1bmN0aW9uKCl7XHJcbiAgICAgICAgICAgICAgICAgICAgb3RoZXIubm9kZS5ydW5BY3Rpb24oY2MubW92ZUJ5KDAuMTUsMCw1MCkpO1xyXG4gICAgICAgICAgICAgICAgICAgIEdsb2JhbC5pbnN0YW5jZS5Db2xsaXNpb25GbGFnID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgcm9vdHNlbGYuaXNIb2xkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgb3RoZXIubm9kZS5nZXRDb21wb25lbnQoXCJQbGF5Y29udHJvbGVyXCIpLmVuYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgICAgIHJvb3RzZWxmLnNjaGVkdWxlT25jZSgoKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIG90aGVyLm5vZGUuZ2V0Q29tcG9uZW50KFwiUGxheWNvbnRyb2xlclwiKS5lbmFibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIH0sMC4yNyk7XHJcbiAgICAgICAgICAgICAgICByb290c2VsZi5zY2hlZHVsZU9uY2UoZnVuY3Rpb24oKXtcclxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhHbG9iYWwuaW5zdGFuY2UuQ29sbGlzaW9uRmxhZytcIjVcIilcclxuICAgICAgICAgICAgICAgICAgICBHbG9iYWwuaW5zdGFuY2UuQ29sbGlzaW9uRmxhZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJvb3RzZWxmLmlzSG9sZCA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHJvb3RzZWxmLkFuaS5zdG9wKCk7XHJcbiAgICAgICAgICAgICAgICB9LDAuNDEpO1xyXG4gICAgICAgICAgICAgICAgb3RoZXIubm9kZS5ydW5BY3Rpb24oc3Bhd24pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==