Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | import {Container} from '@pixi/display';
import {Viewport} from 'pixi-viewport';
import {Scene} from './Scene';
import {MyAvatar} from './MyAvatar';
import {World} from './World';
import {GameData} from './GameData';
import world1Json from './metaData/world1.json';
import {createViewport, setViewportFollow} from './ViewportUtils';
export class GameScene extends Container implements Scene {
private viewport: Viewport;
private world: World;
constructor() {
super();
//
const world = new World(world1Json);
this.world = world;
//viewport create
const viewport = createViewport(
world.background.width,
world.background.height,
);
this.viewport = viewport;
//worldsetViewport
world.setViewport(viewport);
//this.addchild-viewport
this.addChild(viewport);
//viewport-addchild world
viewport.addChild(world);
//world-addMyAvatar
const player = new MyAvatar(world, viewport);
player.setAvatar(GameData.getMyAvatar());
world.addMyAvatar(player);
setViewportFollow(viewport, player);
//Peer를 World에 추가하고 제거하는 기능
GameData.addExistingPeers(world);
GameData.addOnPeerCreatedHandler(world.addPeerAvatar.bind(world));
GameData.addOnPeerDeletedHandler(world.deletePeerAvatar.bind(world));
}
public update(framesPassed: number): void {
this.world.update(framesPassed);
}
public resize(screenWidth: number, screenHeight: number): void {
this.viewport.screenWidth = screenWidth;
this.viewport.screenHeight = screenHeight;
}
}
|