← На главную
Серия практических разборов

Размер игровых объектов зависит от ориентации

Адаптивная вёрстка HTML5-игры для Poki • Раздел 8 из 11

12. Размер игровых объектов зависит от ориентации

Размер наклеек масштабируется по-разному в разных ориентациях.

В LevelStickerSizeResolver:

private resolveScale(): number {
  if (this.screen.getOrientation() === 'land') {
    return this.resolveLandscapeScale();
  }

  return this.resolvePortraitScale();
}

В вертикальной ориентации масштаб растёт от виртуальной ширины:

const virtualWidth = this.screen.getVirtualSize().width;
const extraRatio = Math.max(
  0,
  (virtualWidth - LevelStickerSizeResolver.BASELINE_VIRTUAL_WIDTH) /
    LevelStickerSizeResolver.BASELINE_VIRTUAL_WIDTH,
);

В горизонтальной ориентации масштаб растёт от виртуальной высоты:

const virtualHeight = this.screen.getVirtualSize().height;

Размер объекта следует оси, которая действительно определяет полезное игровое пространство.