2012-04-12 3 views
1

Я новый для Flixel, поэтому, пожалуйста, простите меня, если мой вопрос слишком прост.Таблица стилей не работает как

Мой вопрос: я сделал четыре очень простых изображений (стенд, движение, боковые стойки, боковые перемещения) с помощью Photoshop затем передал его Texture Packer (Таблица стилей производителя) он произвел мне изображение (`s чрезвычайно простой) плюс файл JSON, вот он:
http://i.stack.imgur.com/UTi4G.png
Так что я хотел использовать их с Flixel в качестве персонажа, который стоит (первый), и когда я вызываю движение анимации, он будет использовать последнее изображение, но оно не работает должным образом. в основном он отображает все четыре изображения одновременно.
вот код:
Character.as:

package 
{ 
    import org.flixel.FlxSprite; 

    public class Character extends FlxSprite 
    { 
     [Embed (source="character.png")] 
     private var CharacterGraphic:Class; 
     public function Character(X:Number=0, Y:Number=0) 
     { 
      super(X, Y); 
      loadGraphic(CharacterGraphic, true, false, 53, 54); 
      velocity.y = 100; 
      addAnimation('move_forward', [0, 3], 30, false); 

     } 

    } 
} 

PlayState класс (где я создаю экземпляр этого класса)

override public function create():void{ 
     character = new Character(100, 200); 
     add(character); 

    } 
    override public function update():void{ 
     //for debugging 
     if(character.y == 600){ 
      character.play('move_forward'); 
     } 
     super.update(); 
    } 

Так я ожидал:
первое изображение, которое будет совал (и продолжайте снижаться), когда значение velocity.y равно 600 (только для тестирования) начинается анимация move_forward (прокручивание первого и последнего изображения)

И выход:
Все четыре изображения выскочили, и когда скорость.y == 60 ничего не происходит.

Я действительно думаю, что мне что-то не хватает, так как я очень новичок в ActionScript 3 и Flixel (также разработка игры!).

Почти те же самые шаги работал онлайн учебник Единственное отличие состоит в том, что он создал несколько анимаций (врагов), а не один, проверить его здесь http://gotoandlearn.com/play.php?id=139
Для файла JSON, я не нашел применение для него (я пробовал спрашивая в каналах IRC, но никто не упоминает об этом), также в форумах/учебниках.

ответ

1

Первой проблемой, которую я вижу, является то, что у вас есть изображения на нескольких строках. Flixel любит свои рамки в квадратах в одном горизонтальном ряду. Даже если вы укажете прямоугольный размер для каждого кадра, они все равно должны быть одинакового размера и в одной горизонтальной строке. Если вы все сделаете правильно, у вас должны быть кадры с 0 по 3.

Причина, по которой ничего не изменится, когда ваш образ/кадр должен измениться, потому что нет нужного кадра в индексе, в который вы хотите его изменить. Это должно быть исправлено тем же изменением.

По этой причине я не доверяю большинству упаковщиков спрайтов с проектами с фликселем. Пакеты-упаковщики Sprite пытаются свести к минимуму размер файла, поэтому они сократят столько спрайтов, сколько возможно, поэтому каждый спрайт отличается от других. Flixel, как я уже сказал, любит его спрайты в равных размерах и все в одном ряду.

Я нашел тот, который делает то, что я хочу ... Мне нужно взглянуть, как только я вернусь домой, чтобы посмотреть, какая программа (или если у меня его уже нет). В то же время просто используйте Photoshop, чтобы сделать документ высотой вашего самого высокого спрайта и шириной ширины вашего самого широкого спрайта x число спрайтов на листе. Затем поместите каждый спрайт/фрейм в соответствующее пространство.

Редактировать: Я не думаю, что вам нужен файл JSON вообще. Просто используйте прозрачный PNG.

+0

Я помещаю каждый в пиксель 15x20, все тот же результат, может быть, потому что нет места? – Abdulaziz

+0

Лучший результат, теперь он отображает один кадр с куском второго кадра, потому что между ними нет места (я думаю) – Abdulaziz

+0

Попробуйте квадраты 20x20. –

Смежные вопросы