All files / src/utils/pixiUtils GameScene.ts

0% Statements 0/18
100% Branches 0/0
0% Functions 0/3
0% Lines 0/18

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