Files
climb/assets/scripts/Manager.ts

63 lines
1.9 KiB
TypeScript

import { _decorator, Component, Node, TiledMap } from 'cc';
import { TiledMapPathfinder } from './TiledMapPathfinder';
import { PlayerController } from './PlayerController';
const { ccclass, property } = _decorator;
@ccclass('Manager')
export class Manager extends Component {
@property(TiledMap)
tiledMap: TiledMap | null = null;
@property(Node)
playerNode: Node | null = null;
private pathfinder: TiledMapPathfinder | null = null;
private playerController: PlayerController | null = null;
start() {
this.initializeGame();
}
private initializeGame() {
// 初始化寻路系统
if (this.tiledMap) {
// 为TiledMap添加寻路组件
this.pathfinder = this.tiledMap.node.getComponent(TiledMapPathfinder);
if (!this.pathfinder) {
this.pathfinder = this.tiledMap.node.addComponent(TiledMapPathfinder);
this.pathfinder.tiledMap = this.tiledMap;
this.pathfinder.walkableLayerName = 'WalkableLayer';
this.pathfinder.tileSize = 32;
}
}
// 初始化玩家控制器
if (this.playerNode) {
this.playerController = this.playerNode.getComponent(PlayerController);
if (this.playerController && this.pathfinder) {
this.playerController.pathfinder = this.pathfinder;
}
}
console.log('游戏初始化完成');
this.logMapInfo();
}
private logMapInfo() {
if (this.pathfinder) {
const mapInfo = this.pathfinder.getMapInfo();
if (mapInfo) {
console.log('地图信息:', {
mapSize: mapInfo.mapSize,
tileSize: mapInfo.tileSize,
orientation: mapInfo.orientation
});
}
}
}
update(deltaTime: number) {
}
}