最近搜索

第5节 讲解我们的游戏逻辑, 创建对应的基础脚本,gamectrl、Carmanager、mapmanager。map

浏览:509
管理员 2021-10-20 16:44

image.png    


image.png


创建对应的脚本。

image.png

canvas是node节点。不是Canvas

编写我的gameCtrl脚本,这个脚本放到canvas,同时关联另外2个脚本

image.png

image.png

import { _decorator, Component, Node,Touch, EventTouch, systemEvent } from 'cc';
import { MapManager } from './MapManager';
import { CarManager } from './CarManager';
const { ccclass, property } = _decorator;

@ccclass('GameCtrl')
export class GameCtrl extends Component {

    @property({
        type: MapManager,
    })
    mapManager: MapManager | null = null;

    @property({
        type: CarManager,
    })
    carManager: CarManager | null = null;




}


创建2个node空节点 放上我们的另外2个脚本。

image.png


把之前创建的map101地图放到mapManager里面

image.png



创建Map101的脚本 地图脚本,map123。

为什么不用map。ts 怕和map集合重复。

image.png


map123脚本中添加3个point,分别是3条路线的开始point-node

image.png




CarManager脚本 里面添加属性,mainCar 并且与car关联

import { _decorator, Component, Node } from 'cc';
import { Car } from './Car';
const { ccclass, property } = _decorator;

@ccclass('CarManager')
export class CarManager extends Component {

    @property({
        type: Car
    })
    mainCar: Car | null = null;
    //mainCai :Car  = null;

    /**
     * 
     * points是地图中3条,路径的3个起始点。
     */
    public resetCars(points: Node[]) {
        if (points.length <= 0) {
            console.log("没有point在map");
            return;
        }
        //初始化小车 放到第1个路径的,起点点。
        this._createMainCar(points[0]);
    }

    public controMoving(isRunnding = true) {
        if (isRunnding) {
            //这里能不能通过getComm调用。
            this.mainCar?.startRunning();
        }else{
            this.mainCar?.stopRunning();
        }
    }

    private _createMainCar(point: Node) {
        this.mainCar?.setEntry(point);
    }


}


image.png






联系站长

站长微信:xiaomao0055

站长QQ:14496453