import { GameUIObject } from './GameUIObject'; export class GameUIScene extends GameUIObject { name: string; /** * 递归获取游戏场景中所有名字为name的游戏对象 */ getGameObjectsRecursion(name: string): GameUIObject[] { if (!name || !this.children) return null; var _gameobjects: GameUIObject[] = []; for (var i: number = 0, l: number = this.children.length; i < l; i++) { this._findGameobject(name, this.children[i], _gameobjects); } return _gameobjects; } private _findGameobject(name: string, gameuiobject: GameUIObject, list: GameUIObject[]) { if (gameuiobject.name === name) { list.push(gameuiobject); } else { if (gameuiobject.children) { for (let i: number = 0, l: number = gameuiobject.children.length; i < l; i++){ this._findGameobject(name, gameuiobject.children[i], list); } } } } getGameObjectByUID(uid: number): GameUIObject{ let list: GameUIObject[] = []; for (let i: number = 0, l: number = this.children.length; i < l; i++){ this._search(uid, this.children[i], list); if (list.length > 0) break; } return list[0]; } private _search(compareUID: number, uiGameobject: GameUIObject, list: GameUIObject[]) { if (compareUID === uiGameobject.UID) { list.push(uiGameobject); return; } else { if (uiGameobject.children) { for (let i: number = 0, l: number = uiGameobject.children.length; i < l; i++){ this._search(compareUID, uiGameobject.children[i], list); } } } } }