Мне нужно знать, как добавить 2-й, 3-й, 4-й строки этого спрайта для перемещения слева, справа и вверх (вверху) соответственно.Добавление спрайта в Phaser js
Ниже код предназначен для нижнего перемещения и в качестве его первого ряда в спрайте, я могу его переместить.
Если я создаю длинный спрайт по горизонтали, я могу его достичь, есть ли другой способ?
Пожалуйста, помогите мне выяснить, как включить вторую строку вперед.
Sprite изображений (пользователь/игрок):
function preload(){
myGame.load.spritesheet('user', 'user4.png', 95, 158, 12);
}
var player;
function create(){
player = myGame.add.sprite(500, 100, 'user');
myGame.physics.arcade.enable(player);
player.animations.add('bottom', [0,1,2,3,4,5,6,7,8,9,10,11], 12, true, true);
}
function update(){
if (cursors.left.isDown) {
// Move to the left
player.body.velocity.x = -150;
player.animations.play('left');
}
else if (cursors.right.isDown)
{
// Move to the right
player.body.velocity.x = 150;
player.animations.play('right');
}
else if (cursors.up.isDown)
{
// Move to the right
player.body.velocity.y = -50;
player.animations.play('top');
}
else if (cursors.down.isDown)
{
// Move to the right
player.body.velocity.y = 50;
player.animations.play('bottom');
}
}
Это вещь, которую я пытался до и я получаю сообщение об ошибке в консоли: TypeError: рамка не определена HTTP: // локальный/игры/JS/фазер .js Строка 31278 Есть ли способ указать начальные координаты x, y перед этой строкой: player.animations.add ('left', [12,13,14,15,16,17,18,19 , 20], 12, true, true); – abhiklpm
Вы правы, я думаю, проблема связана с спрайтом, который я использовал, в котором фреймы неверны. – abhiklpm
Для 'load.spritesheet' для работы каждого отдельного кадра на листе должен быть такого же размера, без дополнительной прокладки по бокам листа. Если вы предпочитаете использовать рамы разного размера, тогда вам нужно использовать атлас текстуры, что может оказаться все равно проще - но все зависит от ваших исходных активов. – PhotonStorm