mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-06-26 19:34:47 +00:00
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
|
import { _decorator, Component, instantiate, Node, Prefab } from 'cc';
|
||
|
import { JNFrameInfo, JNSyncFrameEvent } from '../../extensions/ngame/assets/ngame/sync/frame/JNSyncFrame';
|
||
|
import { app } from './App';
|
||
|
import { JNSyncAction } from '../../extensions/ngame/assets/ngame/sync/JNSyncAction';
|
||
|
import { Camera } from 'cc';
|
||
|
const { ccclass, property } = _decorator;
|
||
|
|
||
|
@ccclass('WorldCanvas')
|
||
|
export class WorldCanvas extends Component {
|
||
|
|
||
|
@property(Node)
|
||
|
root:Node = null;
|
||
|
@property(Camera)
|
||
|
camera:Camera = null;
|
||
|
|
||
|
@property(Prefab)
|
||
|
prefab:Prefab = null;
|
||
|
|
||
|
async onLoad(){
|
||
|
|
||
|
//重置相机位置
|
||
|
this.camera.node.setWorldPosition(0,0,1000);
|
||
|
|
||
|
//监听帧同步
|
||
|
app.event.on(JNSyncFrameEvent.CLEAR,this.clear,this);
|
||
|
app.event.on(JNSyncFrameEvent.CREATE,this.create,this);
|
||
|
|
||
|
//监听帧回调
|
||
|
app.socket.on(JNSyncAction.NSyncFrameBack,this.onFrameBack,this,"JNFrameInfo");
|
||
|
|
||
|
app.sync.onReset();
|
||
|
app.sync.onStart();
|
||
|
|
||
|
}
|
||
|
|
||
|
//清除世界
|
||
|
clear(){
|
||
|
this.root.removeAllChildren();
|
||
|
}
|
||
|
|
||
|
//创建世界
|
||
|
create(){
|
||
|
this.root.addChild(instantiate(this.prefab))
|
||
|
}
|
||
|
|
||
|
update(deltaTime: number) {
|
||
|
app.sync.update(deltaTime);
|
||
|
}
|
||
|
|
||
|
onFrameBack(info:JNFrameInfo){
|
||
|
app.sync.addFrame(info,true);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|