squidGame/tgx-games-client/assets/module_arean/scripts/AreanGameScene.ts

138 lines
3.0 KiB
TypeScript
Raw Normal View History

2025-02-07 10:49:34 +08:00
import { _decorator, BaseRenderData, Component, director, instantiate, Prefab, Node, assetManager } from 'cc';
import { tgxUIMgr, tgxUIWaiting } from '../../core_tgx/tgx';
import { areanMgr } from './AreanManager';
import { AreanEvent, AreanNetMgr } from './AreanNetMgr';
import { resLoader } from '../../core_tgx/base/utils/ResLoader';
import { ModuleDef } from '../../scripts/ModuleDef';
import { EFightModel, IAreanPlayer } from '../../module_basic/shared/protocols/public/arean/AreanTypeDef';
import { UserMgr } from '../../module_basic/scripts/UserMgr';
import { UserLocalCache } from '../../module_basic/scripts/UserLocalCache';
2025-02-10 17:40:26 +08:00
import { AreanPlayer } from './AreanPlayer';
2025-02-07 10:49:34 +08:00
const { ccclass, property } = _decorator;
@ccclass('AreanGameScene')
export class AreanGameScene extends Component {
@property({ type: Node })
battleLoading: Node = null;
protected onLoad(): void {
this.listenEvent();
UserMgr.inst.isInGame=true;
}
async start() {
areanMgr.initData();
tgxUIMgr.inst.closeAll();
tgxUIWaiting.show();
let gameMode = UserLocalCache.inst.fightModel;
switch(gameMode){
case EFightModel.Match:
this.GameBeginPush();
break;
case EFightModel.Ranking:
this.GameBeginPush();
break;
case EFightModel.Room:
if(AreanNetMgr.inst.isInGame()){
this.GameBeginPush();
}else{
this.initData();
}
break;
}
}
listenEvent() {
director.on(AreanEvent.GameBegin, this.GameBeginPush, this);
}
GameBeginPush() {
tgxUIWaiting.show();
this.battleLoading.active = true;
let gameHUD = this.node.getChildByName("GameHUD");
if (gameHUD) {
this.node.removeChild(gameHUD)
}
2025-02-21 10:45:46 +08:00
var bundle = assetManager.getBundle('level1');
2025-02-07 10:49:34 +08:00
if(bundle){
2025-02-21 10:45:46 +08:00
director.loadScene("scene/level1Scene");
2025-02-07 10:49:34 +08:00
}else{
2025-02-21 10:45:46 +08:00
assetManager.loadBundle("level1",()=>{
director.loadScene("scene/level1Scene");
2025-02-07 10:49:34 +08:00
tgxUIWaiting.hide();
Merge remote-tracking branch 'origin/feature/xk/language' into dajun # Conflicts: # tgx-games-client/assets/Prefebs.meta # tgx-games-client/assets/Prefebs/role/Character001.prefab # tgx-games-client/assets/Prefebs/role/Character002.prefab # tgx-games-client/assets/Prefebs/role/Character003.prefab # tgx-games-client/assets/level1/Script/AreanPlayer.ts.meta # tgx-games-client/assets/level1/Script/BattleView.ts.meta # tgx-games-client/assets/level1/Script/PlayerController.ts # tgx-games-client/assets/level1/Script/WoodenManGame.ts.meta # tgx-games-client/assets/level1/Script/gameManager.ts # tgx-games-client/assets/level1/Script/player.ts # tgx-games-client/assets/level1/UI/图层 0.png.meta # tgx-games-client/assets/level1/scene/level1Scene.scene # tgx-games-client/assets/level3/scene/BallScene.scene # tgx-games-client/assets/level3/script/GameManager.ts # tgx-games-client/assets/module_arean/common/comUI/Button/btn_rectangle_01_n_bluegray.png.meta # tgx-games-client/assets/module_arean/common/comUI/Button/btn_rectangle_01_n_red.png.meta # tgx-games-client/assets/module_arean/common/comUI/Button/btn_rectangle_01_n_yellow.png.meta # tgx-games-client/assets/module_arean/common/comUI/Button/btn_sqeure_01.png.meta # tgx-games-client/assets/module_arean/common/comUI/Label/label_tag_01_Demo.png.meta # tgx-games-client/assets/module_arean/common/role/doll.prefab # tgx-games-client/assets/module_arean/common/role/red_c.prefab # tgx-games-client/assets/module_arean/lobby_arean.scene # tgx-games-client/assets/module_arean/scripts/AreanGameScene.ts # tgx-games-client/assets/module_arean/scripts/AreanLobbyScene.ts # tgx-games-client/assets/module_arean/scripts/common/CameraOrbit.ts # tgx-games-client/assets/module_arean/ui_searching_rival/ui_searching_rival.prefab # tgx-games-client/assets/module_basic/scripts/FrontConfig.ts # tgx-games-client/tsconfig.json # tgx-games-server/src/SrvGame/RoomArean.ts # tgx-games-server/src/db/mongodb/MongoDBHero.ts # tgx-games-server/src/shared/configs/data/LanguageCfg.json.meta # tgx-games-server/src/shared/configs/interface/ILanguageCfg.ts.meta
2025-02-21 14:15:16 +08:00
this.onCompleteCallback();
2025-02-07 10:49:34 +08:00
})
}
}
async onCompleteCallback() {
this.battleLoading.active = false;
let gameMode = UserLocalCache.inst.fightModel;
switch(gameMode){
case EFightModel.Match:
case EFightModel.Ranking:
await AreanNetMgr.inst.rpc_Ready();
console.log("准备2")
break;
case EFightModel.Room:
break;
}
AreanNetMgr.inst.sendMsg_InBattleView();
}
update(deltaTime: number) {
}
protected onDestroy(): void {
UserMgr.inst.isInGame=false;
}
async initData() {
resLoader.load<Prefab>(ModuleDef.Arean, "GameHUD", (err, prefab) => {
if (err) {
console.log("GameManager start err:", err);
return;
}
if (prefab) {
let node = instantiate(prefab);
node.name = "GameHUD";
this.node.addChild(node);
tgxUIWaiting.hide();
}
});
}
onPlayerComes(_player: IAreanPlayer) {
if (areanMgr.player == null) {
this.createPlayer(_player);
} else {
areanMgr.player.onPlayerDataChange(_player);
}
}
createPlayer(player: IAreanPlayer) {
let _player = new AreanPlayer(player);
areanMgr.player = _player;
areanMgr.playerGroup.push(_player);
_player.setReady(true);
}
createAIPlayer(levelID: number) {
}
}