CarManager.js 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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. cc.Class({
  8. extends: cc.Component,
  9. properties: {},
  10. // LIFE-CYCLE CALLBACKS:
  11. //检测需要自动合并的汽车
  12. GetParkListLevel() {
  13. var car_park_list = cc.find("Canvas/Main/role/Stop_cars/car_park").children;
  14. var car_park_level_list = [];
  15. for (const i in car_park_list) {
  16. car_park_level_list.push(Number(car_park_list[i].getChildByName("car_parking_pic").getChildByName("number").getComponents(cc.Label)[0].string));
  17. }
  18. return car_park_level_list;
  19. },
  20. //自动合并汽车,传递不带停车位的node
  21. // AutoMerge() {
  22. // console.log(this.nodelist);
  23. // if (this.nodelist.length != 2) {
  24. // return;
  25. // }
  26. // var node0_carmerge = this.nodelist[0].getComponent("CarMerge");
  27. // //var node1_carmerge = this.nodelist[1].getComponent("CarMerge");
  28. // var node0_box = this.nodelist[0].getComponent(cc.BoxCollider);
  29. // var node1_box = this.nodelist[1].getComponent(cc.BoxCollider);
  30. // // node0_carmerge.IsMoveNode = true;
  31. // node0_carmerge.onCollisionEnter(node1_box,node0_box);
  32. // this.nodelist = [];
  33. // },
  34. CheckAutoMerge() {
  35. var car_park_list = cc.find("Canvas/Main/role/Stop_cars/car_park").children;
  36. let car_park_level_list = this.GetParkListLevel();
  37. let car_need_merge = [];
  38. for (let i = 0; i < car_park_level_list.length;i++) {
  39. for (let j = i + 1; j < car_park_level_list.length; j++){
  40. if (car_park_level_list[i] == car_park_level_list[j]) {
  41. // console.log(i + ":"+j)
  42. car_need_merge.push(car_park_list[i].getChildByName("car_parking_pic"));
  43. car_need_merge.push(car_park_list[j].getChildByName("car_parking_pic"));
  44. break;
  45. }
  46. }
  47. if (car_need_merge.length > 0) {
  48. break;
  49. }
  50. }
  51. if (car_need_merge.length < 1) {
  52. return
  53. } else {
  54. // this.nodelist = car_need_merge;
  55. this.AutoMergeAction(car_need_merge);
  56. }
  57. },
  58. AfterCarAddOrMerge() {
  59. //更新每秒收益值
  60. cc.find("Canvas/Main/Items/coin_bg/Coin_own").getComponent("Coin_refresh").Coin_refresh_per_circle();
  61. },
  62. AutoMergeAction(list) {
  63. //node的父节点坐标
  64. let nodepos0 = this.moveN1toN2(list[0],list[1]);
  65. // let nodepos1 = nodelist[1].parent.position;
  66. // console.log(nodepos0);
  67. var action = cc.moveTo(0.4, nodepos0);
  68. //var finish = cc.callFunc(this.AutoMerge, this);
  69. // var allaction = cc.sequence(action, finish);
  70. // console.log(list[1]);
  71. list[1].getComponent("CarMerge").setIsMoveTrue();
  72. list[1].runAction(action);
  73. },
  74. /** 把 node1移动到 node2的位置 */
  75. moveN1toN2(node1, node2) {
  76. let node1parentworld = node1.parent.convertToWorldSpaceAR(node1.position);
  77. let node1innode2 = node2.parent.convertToNodeSpaceAR(node1parentworld);
  78. return node1innode2;
  79. // return node1.parent.convertToNodeSpaceAR(node2.parent.convertToWorldSpaceAR(node2.position))
  80. }
  81. // /** 获取把 node1移动到 node2位置后的坐标 */
  82. // convertNodeSpaceAR(node1: cc.Node, node2: cc.Node) {
  83. // return node1.parent.convertToNodeSpaceAR(node2.parent.convertToWorldSpaceAR(node2.position))
  84. // }
  85. });