Phaser является одной из самых популярных библиотек для создания 2D-игр на JavaScript. Для современных проектов с использованием систем сборки и модулей, таких как Webpack, Vite или Parcel, предпочтительным способом установки является npm.
Установка через npm выполняется командой:
npm install phaser
После установки библиотека будет доступна в папке
node_modules/phaser. В проекте можно подключить Phaser как
модуль ES6:
import Phaser from 'phaser';
Это позволяет использовать все классы и методы Phaser с автодополнением в редакторе, а также интегрировать библиотеку с TypeScript, что обеспечивает строгую типизацию.
Пример минимальной конфигурации игры:
import Phaser from 'phaser';
const config = {
type: Phaser.AUTO,
width: 800,
height: 600,
physics: {
default: 'arcade',
arcade: {
gravity: { y: 300 },
debug: true
}
},
scene: {
preload: preload,
create: create,
update: update
}
};
const game = new Phaser.Game(config);
function preload() {
this.load.image('sky', 'assets/sky.png');
}
function create() {
this.add.image(400, 300, 'sky');
}
function update() {
// игровой цикл
}
Ключевые моменты при использовании npm:
npm update phaser.Для быстрых прототипов или небольших проектов удобнее подключать Phaser через CDN. Это не требует установки npm и позволяет сразу использовать библиотеку в HTML-файле.
Пример подключения через CDN:
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Phaser через CDN</title>
<script src="https://cdn.jsdelivr.net/npm/phaser@3/dist/phaser.min.js"></script>
</head>
<body>
<script>
const config = {
type: Phaser.AUTO,
width: 800,
height: 600,
physics: {
default: 'arcade',
arcade: {
gravity: { y: 300 },
debug: true
}
},
scene: {
preload: preload,
create: create,
update: update
}
};
const game = new Phaser.Game(config);
function preload() {
this.load.image('sky', 'assets/sky.png');
}
function create() {
this.add.image(400, 300, 'sky');
}
function update() {
// игровой цикл
}
</script>
</body>
</html>
Преимущества использования CDN:
| Характеристика | npm | CDN |
|---|---|---|
| Поддержка модулей ES6 | Да | Нет |
| Интеграция с TypeScript | Да | Нет |
| Обновление | Через npm | Через изменение ссылки |
| Идеально для | Крупных проектов с сборкой | Быстрых прототипов, учебных примеров |
| Размер проекта | Требует установки | Не требует установки |
Использование npm подходит для долгосрочных проектов с системой сборки, обеспечивая контроль версий и удобство работы с типизацией. Подключение через CDN — быстрый способ начать работу без настройки сборщика, что особенно удобно для обучения и небольших демо-игр.
При работе через npm рекомендуется хранить все игровые ассеты в
отдельной папке assets и использовать относительные пути в
методах this.load. В HTML-проектах с CDN также удобно
структурировать проект аналогично: папка assets для
изображений, звуков и шрифтов.
При переходе от CDN к npm важно помнить о различиях в импортах: через
npm используется import Phaser from 'phaser';, а через CDN
Phaser доступен глобально как Phaser. Это влияет на
написание классов и модулей внутри проекта.
Грамотное понимание различий между npm и CDN позволяет строить проект с учетом его масштаба и требований к сборке, обеспечивая правильную интеграцию Phaser в рабочий процесс.