Двумерные массивы для анимации на Phaser, как организовать?
Всем привет.... Пробую написать простейшую игру на js, с помощью Phaser и столкнулся с такой проблемой, в общем анимация там организована с помощью проигрывания спрайта... Проблема заключается в следующем... одномерный массив проигрывается без проблем, но для организации качественной анимации необходимо большое количество кадров... например я организовал анимацию летающего дракона с плавностью хода из 39 кадров... В общем получается сложно создавать такие спрайты которые немерной длины получаются... Я предполагаю что можно использовать как бы двумерные массивы для отображения спрайтов, т.е. на одной картинке сделать верхний спрайт кадры движения вправо, а нижний ряд движение влево. Это нужно для того, чтобы мы 1 картинку для анимации загружали, а не на каждое действие новую....
В общем я не нашел как это организовать... Пример организации анимации одномерным массивом ниже. ... this.load.image('bomb', 'assets/bomb.png'); this.load.spritesheet('dude', 'assets/dude.png', { frameWidth: 32, frameHeight: 48 } // создаем персонажа с размерами фрейма 32х48 function create () { this.add.image(400, 300, 'sky'); //добавляем задний фон player = this.physics.add.sprite(100, 450, 'dude'); player.setBounce(0.2); player.setCollideWorldBounds(true); this.anims.create({ key: 'left', frames: this.anims.generateFrameNumbers('dude', { start: 0, end: 3 }), frameRate: 10, // тут мы задаем те кадры которые проигрывать при хождении влево repeat: -1 }); this.anims.create({ key: 'turn', frames: [ { key: 'dude', frame: 4 } ], frameRate: 20 }); this.anims.create({ key: 'right', frames: this.anims.generateFrameNumbers('dude', { start: 5, end: 8 }), frameRate: 10, //проигрывание кадров при движении влево.... repeat: -1 }); } Вот так вот получается работа с одномерным массивом... по сути работа с frames: this.anims.generateFrameNumbers('dude', { start: 5, end: 8 }), Подскажите про кодеры как мне можно решить мою проблему? Возможно ли это. PS: Думаю что возможно, т.к. я видел спрайты на 5-6 строк по 10-20 элементов... |
Часовой пояс GMT +3, время: 21:00. |