UiController.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315
  1. // Learn cc.Class:
  2. // - https://docs.cocos.com/creator/manual/en/scripting/class.html
  3. // Learn Attribute:
  4. // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
  5. // Learn life-cycle callbacks:
  6. // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
  7. //const StatesManage = require("StatesManage");
  8. cc.Class({
  9. extends: require("BaseUiConstroller"),
  10. properties: {
  11. interfacaArr: { //界面列表
  12. default: [],
  13. type: cc.Node,
  14. },
  15. passArr: { //
  16. type: cc.Prefab,
  17. default: [],
  18. },
  19. audioArr: { //音频
  20. type: cc.AudioClip,
  21. default: [],
  22. },
  23. Column_Right_Grid: cc.Node,
  24. },
  25. // LIFE-CYCLE CALLBACKS:
  26. onLoad() {
  27. this.bg1 = cc.find("Canvas/Panel_Botton/Btn_Activity/Bg_1");
  28. this.bg2 = cc.find("Canvas/Panel_Botton/Btn_Game/Bg_2");
  29. this.bg3 = cc.find("Canvas/Panel_Botton/Btn_Role/Bg_3");
  30. this.Btn_Activity = cc.find("Canvas/Panel_Botton/Btn_Activity");
  31. this.Btn_Game = cc.find("Canvas/Panel_Botton/Btn_Game");
  32. this.Btn_Role = cc.find("Canvas/Panel_Botton/Btn_Role");
  33. this.game = cc.find("Canvas/Game");
  34. this.Interface_Node = cc.find("Canvas/Interface_Node");
  35. this.Panel_Botton = cc.find("Canvas/Panel_Botton");
  36. this.back_btn = cc.find("Canvas/UiController/Btn_Back");
  37. this.Interface_PassArr = cc.find("Canvas/Interface_PassArr");
  38. this.role_headArr = cc.find("Canvas/Interface_Against/Panel_Middle/Bg/PassNode").children;
  39. var self = this;
  40. cc.loader.loadRes("prefab/Items/Grid", (err, prefab) => {
  41. for (let i = 0; i < 30; i++) {
  42. self.Column_Right_Grid.addChild(cc.instantiate(prefab));
  43. }
  44. });
  45. },
  46. start() {
  47. this.init();
  48. this.Role_Head_Event();
  49. this.interface_info = cc.find("Canvas/Interface_Info").getComponent('Interface_Info');
  50. let i = 5;
  51. this.schedule(function() {
  52. if (i == 0) return;
  53. else {
  54. i--;
  55. this.interface_info.creatorgird();
  56. }
  57. }, 0.5);
  58. },
  59. Role_Head_Event() {
  60. this.role_headArr.forEach(element => {
  61. element.on(cc.Node.EventType.TOUCH_START, () => {
  62. cc.audioEngine.playEffect(this.audioArr[0]);
  63. console.log("触摸头像");
  64. //打开全部关卡界面
  65. this.Interface_PassArr.active = true;
  66. });
  67. });
  68. },
  69. update(dt) {
  70. this.role_headArr.forEach(element => {
  71. element.active = false;
  72. });
  73. this.role_headArr[this.GameState._currPass].active = true;
  74. },
  75. Bottonbtn_Touch(event) {
  76. cc.audioEngine.playEffect(this.audioArr[0]);
  77. this.Interface_Node.removeAllChildren();
  78. if (event.target.name == "Btn_Activity") {
  79. this.bg1.active = true;
  80. this.bg2.active = false;
  81. this.bg3.active = false;
  82. this.Btn_Activity.setScale(1);
  83. this.Btn_Game.setScale(0.8);
  84. this.Btn_Role.setScale(0.8);
  85. this.interfacaArr[0].active = false;
  86. this.interfacaArr[1].active = false;
  87. cc.resources.load("prefab/Interface/Interface_Activitys", (err, prefab) => {
  88. var interfaceactivity = cc.instantiate(prefab);
  89. this.Interface_Node.addChild(interfaceactivity);
  90. });
  91. }
  92. if (event.target.name == "Btn_Game") {
  93. this.bg1.active = false;
  94. this.bg2.active = true;
  95. this.bg3.active = false;
  96. this.Btn_Activity.setScale(0.8);
  97. this.Btn_Game.setScale(1);
  98. this.Btn_Role.setScale(0.8);
  99. this.change_interface(this.interfacaArr, 0);
  100. this.game.removeAllChildren();
  101. this.Interface_Node.removeAllChildren();
  102. }
  103. if (event.target.name == "Btn_Role") {
  104. this.bg1.active = false;
  105. this.bg2.active = false;
  106. this.bg3.active = true;
  107. this.Btn_Activity.setScale(0.8);
  108. this.Btn_Game.setScale(0.8);
  109. this.Btn_Role.setScale(1);
  110. this.change_interface(this.interfacaArr, 1);
  111. this.Interface_Node.removeAllChildren();
  112. }
  113. if (event.target.name == "Btn_Back") {
  114. this.game.removeAllChildren();
  115. this.Panel_Botton.active = true;
  116. this.change_interface(this.interfacaArr, 0);
  117. this.back_btn.active = false;
  118. this.GameMode._gamestart = false;
  119. }
  120. if (event.target.name == "Btn_Back_Pass") {
  121. this.change_interface(this.interfacaArr, 0);
  122. this.Interface_PassArr.active = false;
  123. }
  124. },
  125. //触发按钮 关卡
  126. btn_Touch(event) {
  127. cc.audioEngine.playEffect(this.audioArr[0]);
  128. this.game.removeAllChildren();
  129. this.Interface_Node.removeAllChildren();
  130. this.interfacaArr[0].active = false;
  131. this.interfacaArr[1].active = false;
  132. if (event.target.name == "Btn_Against") {
  133. this.Panel_Botton.active = false;
  134. //this.GameState._currPass = 0;
  135. this.game.addChild(cc.instantiate(this.passArr[this.GameState._currPass]));
  136. // var self = this;
  137. // cc.resources.loadDir("prefab/Pass", (err, prefabs) => {
  138. // var interfacegame = cc.instantiate(prefabs[]);
  139. // self.game.addChild(interfacegame);
  140. // });
  141. }
  142. // this.game.addChild(StatesManage.Game_Pass[this.GameState._currPass]);
  143. //var self = this;
  144. //
  145. // cc.loader.loadRes("prefab/Pass", (err, prefabs) => {
  146. // console.log("关卡:", self.GameState._currPass);
  147. // var interfacegame = cc.instantiate(prefabs[self.GameState._currPass]);
  148. // self.game.addChild(interfacegame);
  149. // });
  150. },
  151. init() {
  152. //角色脚本
  153. this.GameState = cc.find("GameStates").getComponent("GameStates");
  154. this.GameMode = cc.find("GameMode").getComponent("GameMode");
  155. // this.controScp = this.playerController.getComponent('PlayerController');
  156. // this.charactortroScp = this.Charactor.getComponent('Charactor');
  157. this.font_Arr = cc.find("Canvas/UiController/Ui_caution").children;
  158. this.change_interface(this.interfacaArr, 0);
  159. this.bg2.active = true;
  160. this.Btn_Activity.setScale(0.8);
  161. this.Btn_Game.setScale(1);
  162. this.Btn_Role.setScale(0.8);
  163. },
  164. actions() {
  165. let action1 = cc.scaleTo(0.8, 0.8, 0.8);
  166. let action2 = cc.scaleTo(1, 2, 2);
  167. this.ui_countdown(action1, action2);
  168. },
  169. ui_countdown(action, action2) {
  170. for (let i = 0; i < 3; i++) {
  171. this.scheduleOnce(function() {
  172. cc.audioEngine.playEffect(this.audioArr[6]);
  173. this.font_Arr[i].active = true;
  174. this.font_Arr[i].runAction(action);
  175. this.scheduleOnce(function() {
  176. this.font_Arr[i].active = false;
  177. this.font_Arr[i].setScale(2);
  178. }, 0.6);
  179. }, i + 1);
  180. }
  181. this.scheduleOnce(function() {
  182. this.font_Arr[3].active = true;
  183. this.font_Arr[3].runAction(action2);
  184. this.scheduleOnce(function() {
  185. this.font_Arr[3].active = false;
  186. this.back_btn.active = true;
  187. }, 0.8);
  188. cc.audioEngine.playEffect(this.audioArr[5]);
  189. this.GameMode._gamestart = true;
  190. }, 4);
  191. },
  192. Ui_Shake(node_index) {
  193. if (node_index == 1) { //左
  194. this.font_Arr[4].active = true;
  195. this.Shake(this.font_Arr[4], 2);
  196. cc.audioEngine.playEffect(this.audioArr[6]);
  197. this.scheduleOnce(function() {
  198. this.font_Arr[4].active = false;
  199. }, 0.5);
  200. }
  201. if (node_index == 2) { //右
  202. this.font_Arr[5].active = true;
  203. this.Shake(this.font_Arr[5], 2);
  204. cc.audioEngine.playEffect(this.audioArr[6]);
  205. this.scheduleOnce(function() {
  206. this.font_Arr[5].active = false;
  207. }, 0.5);
  208. }
  209. if (node_index == 3) { //红屏
  210. this.font_Arr[8].active = true;
  211. this.scheduleOnce(function() {
  212. this.font_Arr[8].active = false;
  213. }, 0.5);
  214. }
  215. if (node_index == 4) { //血量不足
  216. this.font_Arr[7].active = true;
  217. this.scheduleOnce(function() {
  218. this.font_Arr[7].active = false;
  219. }, 0.5);
  220. }
  221. if (node_index == 5) { //能量不足
  222. this.font_Arr[6].active = true;
  223. this.scheduleOnce(function() {
  224. this.font_Arr[6].active = false;
  225. }, 0.5);
  226. }
  227. },
  228. Shake(node_shake, index) {
  229. let x = node_shake.x;
  230. let y = node_shake.y;
  231. let offset = 10;
  232. if (index == 0) {
  233. let action = cc.repeatForever(
  234. cc.sequence(
  235. // cc.moveTo(0.018, cc.v2(x + (5 + offset), y + (offset + 7))),
  236. // cc.moveTo(0.018, cc.v2(x - (6 + offset), y + (offset + 7))),
  237. // cc.moveTo(0.018, cc.v2(x - (13 + offset), y + (offset + 3))),
  238. // cc.moveTo(0.018, cc.v2(x + (3 + offset), y - (6 + offset))),
  239. // cc.moveTo(0.018, cc.v2(x - (5 + offset), y + (offset + 5))),
  240. cc.moveTo(0.018, cc.v2(x + (2 + offset), y - (8 + offset))),
  241. cc.moveTo(0.018, cc.v2(x - (8 + offset), y - (10 + offset))),
  242. cc.moveTo(0.018, cc.v2(x + (3 + offset), y + (offset + 10))),
  243. cc.moveTo(0.018, cc.v2(x + (0 + offset), y + (offset + 0)))
  244. )
  245. )
  246. node_shake.runAction(action);
  247. setTimeout(() => {
  248. node_shake.stopAction(action);
  249. node_shake.x = x;
  250. node_shake.y = y;
  251. }, 1000);
  252. } else if (index == 1) {
  253. let action = cc.repeatForever(
  254. cc.sequence(
  255. cc.moveTo(0.018, cc.v2(x + (5 + offset), y + (offset + 7))),
  256. cc.moveTo(0.018, cc.v2(x - (6 + offset), y + (offset + 7))),
  257. cc.moveTo(0.018, cc.v2(x - (13 + offset), y + (offset + 3))),
  258. cc.moveTo(0.018, cc.v2(x + (3 + offset), y - (6 + offset))),
  259. )
  260. )
  261. node_shake.runAction(action);
  262. setTimeout(() => {
  263. node_shake.stopAction(action);
  264. node_shake.x = x;
  265. node_shake.y = y;
  266. }, 1000);
  267. } else if (index == 2) {
  268. let action = cc.repeatForever(
  269. cc.sequence(
  270. cc.moveTo(0.018, cc.v2(x + offset, y + offset)),
  271. cc.moveTo(0.018, cc.v2(x - offset, y + offset)),
  272. cc.moveTo(0.018, cc.v2(x - offset, y + offset)),
  273. cc.moveTo(0.018, cc.v2(x + offset, y - offset)),
  274. cc.moveTo(0.018, cc.v2(x - offset, y + offset)),
  275. )
  276. )
  277. node_shake.runAction(action);
  278. setTimeout(() => {
  279. node_shake.stopAction(action);
  280. node_shake.x = x;
  281. node_shake.y = y;
  282. }, 1000);
  283. }
  284. },
  285. });