tilemaps
tilemaps
Автоматически переведённая страница
К сожалению, на полный ручной перевод у нас не хватает ресурсов.
Если вы увидели ошибку — отправьте пул-риквест с исправлениями (ссылка для редактирования в конце страницы).
Объект tilemaps
позволяет создавать слои с тайлами в игре. Он также может кэшировать слои, что значительно ускоряет игру, но как только слой кэшируется, его нельзя редактировать.
Методы tilemaps
tilemaps.create(глубина)
Создаёт и возвращает новый тильномап. "Глубина" устанавливает значение глубины этого тильномапа, размещая его выше или ниже других объектов.
Возвращает новое экземпляр класса Tilemap
.
tilemaps.addTile(tilemap, textureName, x, y, frame)
Добавляет плитку в указанный tilemap
.
Аргумент | Тип | Описание |
---|---|---|
tilemap | Tilemap | Картинка, в которую нужно добавить плитку. |
textureName | string | Имя текстуры ct.js для рисования. |
x | number | Позиция, по горизонтали, где должна быть размещена плитка. |
y | number | Позиция, по вертикали, где должна быть размещена плитка. |
frame | number | (опционально) Указывает рамку для рисования. По умолчанию равно 0. |
Возвращает созданную плитку, которая является экземпляром PIXI.Sprite
.
tilemaps.cache(tilemap, chunkSize)
Кэширует плиточную карту, группируя плиты в крупные куски и преобразуя их в несколько битмапов. После кэширования его нельзя изменять.
Аргумент | Тип | Описание |
---|---|---|
tilemap | Tilemap | Плиточная карта, которая должна быть кэширована. |
chunkSize | number | (необязательно) Минимальный размер куска. По умолчанию равен 1024. |
tilemaps.cacheDiamond(tilemap, chunkSize)
Включает кэширование этого тайлсета, замораживает его и превращает в серию текстур бимп-формата. Это обеспечивает значительный прирост скорости, но не позволяет дальнейшие úpravy.
Эта версия упаковывает тайлы в формы ромбовидных шматочков и сортирует их сверху вниз. Такое расположение устраняет проблемы с зазорами для изометрических игр.
Обратите внимание, что тайлы должны быть размещены на плоской поверхности для правильного сортировки. Если вам нужен эффект высоты, рассмотрите возможность смещения каждого тайла с помощью свойства tile.pivot.y
.
Это то же самое, что и вызов функции tilemap.cacheDiamond();
Аргумент | Тип | Описание |
---|---|---|
tilemap | Tilemap | Тайлмап, который нужно кэшировать. |
chunkSize | number | (необязательно) Минимальный размер шматочка. По умолчанию равен 1024. |
Методы Tilemap
Tilemap
является подклассом PIXI.Container
, и может быть окрашен, преобразован и перемещен. Методы ниже в основном повторяют методы tilemaps
, но в объектно-ориентированном стиле.
tilemap.addTile(textureName, x, y, frame)
Добавляет плитку в текущую плиточную карту.
Аргументы:
textureName
: строка — имя текстуры ct.js для рисования;x
: число — положение, по горизонтали, где должна быть размещена плитка;y
: число — положение, по вертикали, где должна быть размещена плитка;frame
(необязательно): число — указывает, какая рамка должна быть использована. По умолчанию значение 0.
tilemap.cache(chunkSize)
Кэширует тилепет, группируя тилы в большие куски и преобразуя их в несколько битмапов. После кэширования его нельзя изменять.
Аргумент | Тип | Описание |
---|---|---|
chunkSize | number | опционально Минимальный размер куска. По умолчанию 1024. |
tilemap.cacheDiamond(chunkSize)
Кэширует tilemap, группируя кахли в большие блоки и преобразуя их в несколько битмапов. После кэширования его уже нельзя изменить.
Этот вариант упаковывает кахли в ромбовидные блоки и сортирует их сверху вниз. Это устраняет проблемы с линиями для изометрических игр.
Обратите внимание, что кахли должны быть размещены на плоской поверхности для правильной сортировки. Если вам нужен эффект высоты, рассмотрите возможность смещения каждого кахля с помощью свойства tile.pivot.y
.
Аргумент | Тип | Описание |
---|---|---|
chunkSize | number | (необязательно) Минимальный размер блока. По умолчанию равен 1024. |
Пример: Создайте ряд плит с разными текстурными рамками
this.tilemap = tilemaps.create(-100);
for (let i = 0; i < 10; i++) {
tilemaps.addTile(this.tilemap, 'Tiles', i * 64, 0, i);
}
this.tilemap.cache();
@tilemap = tilemaps.create(-100)
i = 0
while i < 10
tilemaps.addTile @tilemap, 'Tiles', i * 64, 0, i
i++
@tilemap.cache()
Пример: создать карту из тайлов и перлин-шума, и включить столкновения
Вам понадобится модуль noise
в вашем проекте, функция place
, и текстура с названием RockTile
.
const tilemap = tilemaps.create(-100);
noise.setSeed(); // Случайно перемешать семя на каждом запуске
// Предполагается, что у вас есть текстура "RockTile" размером 64x64 пикселей.
for (var x = 0; x < camera.width / 64; x++) {
for (var y = 0; y < camera.height / 64; y++) {
var value = noise.simplex2d(x / 7, y / 7); // Возвращает значение от -1 до 1.
if (value > 0) {
const tile = tilemap.addTile('RockTile', x*64, y*64);
// Тайлы являются PIXI.Sprites; мы можем подкрутить их цвет и непрозрачность перед кэшированием
tile.alpha = value * 0.5 + 0.5;
}
}
}
tilemap.cache();
place.enableTilemapCollisions(tilemap, 'Solid');
tilemap = tilemaps.create -100
noise.setSeed() # Случайно перемешать семя на каждом запуске
# Предполагается, что у вас есть текстура "RockTile" размером 64x64 пикселей.
x = 0
while x < camera.width / 64
y = 0
while y < camera.height / 64
value = noise.simplex2d x / 7, y / 7 # Возвращает значение от -1 до 1.
if value > 0
tile = tilemap.addTile 'RockTile', x * 64, y * 64
# Тайлы являются PIXI.Sprites; мы можем подкрутить их цвет и непрозрачность перед кэшированием
tile.alpha = value * 0.5 + 0.5
y++
x++
tilemap.cache()
place.enableTilemapCollisions tilemap, 'Solid'