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); } }