123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- // Learn cc.Class:
- // - https://docs.cocos.com/creator/manual/en/scripting/class.html
- // Learn Attribute:
- // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
- // Learn life-cycle callbacks:
- // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
- cc.Class({
- extends: cc.Component,
- properties: {
- Car_Park:cc.Node,
- Car:cc.Prefab,
- IsMoveNode:false,
- Merge_TX: cc.Prefab,
- Cars_Run_Area: cc.Node,
- Cars_Run_detail: cc.Prefab,
- Bind_Car_Run:cc.Node
- },
- // LIFE-CYCLE CALLBACKS:
- onLoad() {
- this.Cars_Run_Area = cc.find("Canvas/Main/role/Run_cars");
- },
- setIsMoveTrue() {
- this.IsMoveNode = true;
- },
- start () {
- //监听拖动
- this.registerEvent();
- },
- registerEvent() {
- //touchstart 可以换成cc.Node.EventType.TOUCH_START
- this.node.on('touchstart', this.onEventStart, this);
- //touchmove 可以换成cc.Node.EventType.TOUCH_MOVE
- this.Car_Park.on('touchmove', this.onEventMove, this);
- //touchcancel 可以换成cc.Node.EventType.TOUCH_CANCEL
- this.Car_Park.on('touchcancel', this.onEventEnd, this);
- //touchend 可以换成cc.Node.EventType.TOUCH_END
- this.Car_Park.on('touchend', this.onEventEnd, this);
- },
- onEventStart(event){
- this.IsMoveNode = true;
- cc.director.getCollisionManager().enabled = true;
- },
- onEventMove(event){
- //将世界坐标转为本地坐标
- var nodepos = this.node.parent.convertTouchToNodeSpace(event);
- //将car移动到nodepos
- this.Car_Park.setPosition(nodepos);
- //console.log(nodepos)
- },
- onEventEnd(event){
- //初始位置是120,100
- this.Car_Park.setPosition(120,100);
- this.IsMoveNode = false;
- cc.director.getCollisionManager().enabled = false;
- },
- // update (dt) {},
- //碰撞回调
- /**
- * 当碰撞产生的时候调用
- * @param {Collider} other 产生碰撞的另一个碰撞组件
- * @param {Collider} self 产生碰撞的自身的碰撞组件
- */
- onCollisionEnter: function (other, self) {
- console.log(self.node.getChildByName("number").getComponents(cc.Label)[0].string);
- if(this.IsMoveNode){
- return
- }
- if (!Global.endinit) {
- Global.toast("请等待汽车加载完成!")
- return;
- }
- // console.log('on collision enter');
- var self_level = Number(self.node.getChildByName("number").getComponents(cc.Label)[0].string);
- var other_level = Number(other.node.getChildByName("number").getComponents(cc.Label)[0].string);
- if (self_level == other_level) {
- if (self_level == 25) {
- //满级大佬,不给升级
- return;
- }
- // other.node.parent.active = false;
- other.node.parent.destroy();
- this.addNewCar(self_level);
- }
- },
- MergeCarAction(node){
- let carnode = cc.instantiate(this.Merge_TX);
- carnode.parent = node;
- },
- addNewCar(level) {
- MyAudio.PlayEffect_initcar();
- let kongpark = this.node.parent;
- //this.node.active = false;
- this.node.destroy();
- var carnode = cc.instantiate(this.Car);
- carnode.getChildByName("number").getComponent(cc.Label).string = level + 1;
- let pic_url = Global.Cars[level+1].car_park_pic
- cc.resources.load(pic_url, cc.SpriteFrame, function (err, spriteFrame) {
- carnode.getComponent(cc.Sprite).spriteFrame = spriteFrame;
- });
- this.MergeCarAction(carnode);
- carnode.parent = kongpark;
- if (kongpark.getComponent("CarBindRunAndPark").Bind_Car_Run != null) {
- kongpark.getComponent("CarBindRunAndPark").Bind_Car_Run.destroy();
- // console.log("destroy")
- }
-
- carnode.parent.getComponent("CarBindRunAndPark").Bind(this.UpdateCar(level));
- //console.log(cc.find('Canvas/Main/role/Stop_cars/car_park').children)
-
- // this.UpdateCar(level);
- },
- //根据停车场车辆情况,更新跑道上车辆的信息,主要是每次merge后调用
- //@level: 被合并的汽车的等级,跑道需要消灭1个该等级的车,然后升级一个该等级的车
- UpdateCar(level) {
- var car_run_node = cc.instantiate(this.Cars_Run_detail);
- car_run_node.getChildByName("number_pic").getChildByName("level_number").getComponent(cc.Label).string = level + 1;
- cc.resources.load(Global.Cars[level + 1].car_run_pic, cc.SpriteFrame, function (err, spriteFrame) {
- car_run_node.getComponent(cc.Sprite).spriteFrame = spriteFrame;
- //更新每秒收益值
- cc.find("Canvas/Main/role/Stop_cars/car_park").getComponent("CarManager").AfterCarAddOrMerge();
- });
- car_run_node.parent = this.Cars_Run_Area;
- //判断是否破纪录
- if (level + 1 > Global.MaxCarLevel) {
- Global.MaxCarLevel = level + 1;
- this.updateWXRank();
- if (Global.MaxCarLevel >= 8) {
- //更新addcar级别
- Storage.Set_storage(Storage.GameMessageType.buy_car_level, Global.MaxCarLevel - 6);
- //更新addcar价格,原有价格翻倍
- Storage.Set_storage(Storage.GameMessageType.buy_coin, Number(Storage.Get_storage(Storage.GameMessageType.buy_coin)) * 2);
- //更新add按钮ui
- cc.find('Canvas/Main/role/Stop_cars/Add_Car').getComponent('CarAddPark').updateAddCarButton();
- setTimeout(function () {
- cc.find('Canvas/Main/role/Stop_cars/Add_Car').getComponent('CarAddPark').UpdateLowLevelCar(Global.MaxCarLevel - 6);
- },1000)
- }
-
- }
-
- return car_run_node;
- },
- updateWXRank(){
- Global.CocosAnalysticCustomEvent('LEVEL', Global.MaxCarLevel)
- }
- });
|