Модификаторы сущностей не работают (AndEngine / Android) - PullRequest
3 голосов
/ 04 марта 2012

Я играю с AndEngine.Документы для чтения недоступны, поэтому я просто снимаю в темноте.

Наконец-то появилась заставка.Сейчас я пытаюсь добавить некоторые переходы к нему, но здесь не повезло.Вот код:

@Override
public void onLoadComplete() {
  mHandler.postDelayed(fadeAway, 2500);
}

protected Runnable fadeAway = new Runnable() {
  @Override
  public void run() {
    // The only child of the scene is our splash sprite
    scene.getLastChild().registerEntityModifier(new SequenceEntityModifier(
        new ScaleModifier(2500, 100.0f, 200.0f),
        new RotationModifier(2500, 0.0f, 78.0f),
        new AlphaModifier(2500, 1.0f, 0.0f)
    ));
  }
};

Что происходит, так это то, что postDelayed() работает нормально (ожидание 2,5 секунды), но затем все сразу становится черным.Чего я ожидал, так это того, что заставка должна увеличиваться до 200%, затем поворачиваться на 78 градусов, затем исчезать, но, поскольку все становится черным, возникает ощущение, что длительность модификаторов не работает.

Есть лиявная ошибка здесь?

EDIT : Хорошо, обнаружил ошибки: 1) Очевидно, pDuration (первый аргумент) должен быть в секундах, а не в миллисекундах, как везде 2) В ScaleModifier(), 1.0f равняется исходному размеру, так что аргумент не в процентах, как ожидалось.

(Без пламени, но я действительно поражен, как людям удалось узнать, как использовать эту библиотеку без какой-либо документации.Во всем исходном коде нет ни единого комментария или примечания. Были ли люди методом проб и ошибок реверс-инжиниринг всего, чтобы выяснить, как это должно работать? Не могу поверить, что автор проделал такой огромный объем работы для этой библиотеки иникогда не предоставлял никаких документов.)

1 Ответ

0 голосов
/ 12 августа 2015

Ваши ошибки перечислены ниже:

  • Все длительности в AndEngine указаны в секундах.
  • Обычная шкала 1.0f, а не 100.0f.
  • Нет необходимости в Android Handler. Вы должны отложить свои работы в onUpdate методах движка или других вещах AndEngine.
  • Вы должны применять анимацию только в теме обновления, а не где-либо еще. mEngine.runOnUpdateThread(...)
...