[phaser] phaser 3의 다양한 loader 사용법

[phaser] phaser 3의 다양한 loader 사용법 updated_at: 2023-11-28 15:48

Loader

Image

this.load.image('key', 'image path');
this.add.image(0, 0, 'key').setOrigin(0, 0)

이미지 변경

this.tank = this.add.image(0, 0, 'keyFrom')
this.tank.setTexture('keyTo')

svg

this.load.svg('key', 'image path');
this.add.image(0, 0, 'key').setOrigin(0, 0)

SpriteSheet

spriteSheet로 된 이미지를 로드하여 사용하는 법

preload()
{
  this.load.spritesheet({
    key: 'bot',
    url: 'images/robot.png',
    frameConfig: {
      frameWidth: 32,
      frameHeight: 38,
      startFrame: 0,
      endFrame: 8
    }
  });
}

혹은 아래와 같이 입력하면 된다.

preload()
{
  this.load.spritesheet(
    'key',
    'image',
    {   
      frameWidth: width,
      frameHeight: height
    }
  );
}

SpriteSheet 된 항목 불러오기

this.add.image(x, y, 'key', index); // .setOrigin(0, 0)

이미지 캐시를 삭제하기

this.textures.remove('key');
this.physics.add.sprite(50, 250, 'ball'); // x, y, texture

Sound

private preload ()
{
  this.load.audio('mysound', 'assets/sounds/sound-file')
}

const mySound = this.sound.add('mysound');
mySound.play({loop: true, volume: 0.9})

JSON

private preload ()
{
  this.cache.json.remove('gameData'); // 캐시삭제하기
  this.load.json('gameData', '/assets/data/1.json');
}

private create ()
{
  const gameData = this.cache.json.get('gameData');
}

모든 캐시 삭제

for(let type in this.cache) {
  if (type != 'game') {
    for (let entry in this.cache[type]) {
      this.cache[type].remove(entry);
    }
  }
}

bitmap Text

scene.load.bitmapFont(key, textureURL, xmlURL);
this.load.bitmapFont('ArialBlackShadow', '/assets/images/ArialBlackShadow.png', '/assets/images/ArialBlackShadow.xml');
평점을 남겨주세요
평점 : 5.0
총 투표수 : 1

질문 및 답글