Skip to content

stadium / Exports / Stadium

Class: Stadium

Stadium은 스프라이트가 배치될 수 있는 공간입니다.

ts
const element = document.querySelector('.stadium')
const designedSize = { width: 1000, height: 1000 }
const actualSize = { width: 500, height: 500 }

const stadium = new Stadium(element, designedSize, actualSize);

Stadium을 초기화하면 element에는 다음과 같은 변화가 생깁니다

  1. positionrelative로 설정됩니다
  2. widthheightactualSize의 값으로 설정됩니다
  3. 종횡비가 CSS Variable에 저장됩니다
    • --x-ratio: width / designedSize.width
    • --y-ratio: height / designedSize.height

Table of contents

Constructors

Properties

Methods

Constructors

constructor

new Stadium(element, designedSize, actualSize?): Stadium

Stadium 클래스의 생성자입니다.

Parameters

NameTypeDefault valueDescription
elementHTMLDivElementundefined스타디움을 표시할 HTMLDivElement입니다.
designedSizeSizeundefined스타디움의 설계 크기
actualSizeSizedesignedSize실제 렌더링될 Element의 크기

Returns

Stadium

Defined in

lib/stadium/index.ts:48

Properties

element

element: HTMLDivElement

스타디움을 표시할 HTMLDivElement입니다.

Defined in

lib/stadium/index.ts:49


pubsub

pubsub: PubSub<{ spriteMove: (sprite: Sprite) => void }>

Stadium의 이벤트를 구독할 수 있는 PubSub 객체

ts
stadium.pubsub.sub('spriteMove', (sprite: Sprite) => {
   console.log(sprite, `가 이동했습니다.`);
})

Defined in

lib/stadium/index.ts:38


sprites

sprites: Sprite[] = []

Stadium에 배치된 스프라이트들의 목록

Defined in

lib/stadium/index.ts:27

Methods

addSprite

addSprite(sprite): void

스프라이트를 스타디움에 추가합니다. Stadium에 Sprite를 추가하는 과정을 mount라고 합니다.

ts
stadium.add(sprite);

다음의 순서로 mount됩니다:

  1. DOM에 Sprite의 엘리먼트가 추가됩니다.
  2. sprite.onMount 이벤트를 호출합니다
    • onMount 함수에는 Stadiumid가 전달됩니다.
    • id는 crypto.randomUUID 함수를 사용해서 만들어집니다. 고유함을 보장하지 않습니다.

Parameters

NameTypeDescription
spriteSprite추가할 스프라이트 객체입니다.

Returns

void

Deprecated

Stadium.addSpriteStadium.add로 대체되었습니다.

Defined in

lib/stadium/index.ts:93