Tween addOnce arguments

В документации на Tween.addOnce в Phaser CE 2.9.1 сказано, что в конце можно добавлять свои произвольные аргументы для listener

Это не работает — листенеру в списке аргументов идет первым сначала цель твина, затем ссылка на сам твин. Может, где-то в конце они и мои аргументы цепляют, но увидев такое расхождение, я решил вовсе не полагаться на передачу аргументов таким образом — и положил их в отдельный объект.

Баги в больших фреймворках расстраивают — и особенно расстраивают расхождения с документацией. В родных библиотеках Google для разработки под Android тоже полно такого.

PS: я в конечном итоге в одном проекте сделал так, что просто вычислял время анимации и заказывал продолжение работы логики не через коллбэки анимации, а через таймер.

Tween addOnce arguments: 10 комментариев

  1. А они не говорят в доке, где твои аргументы будут. Я всегда вручную перепроверяю через переменную arguments. А тебе зачем понадобился этот метод? Я про него не читал, интерестно где ты ему нашел применение? =)

  2. у меня есть цепочка двигающихся предметов
    на последний предмет в цепочке я подвешиваю коллбэк на завершение — «Все передвижения сделаны»

  3. Все верно, у меня тоже была такая необходимость. А какие данные ты планировал передавать в onComplete событие последнего анимированного элемента? Или ты хотел повесить callback, который должен был вызваться, когда вся анимация завершена?

  4. да, как знак для наступления следующего действия

  5. Так цепочку я вроде делал через tween = game.add.tween().to().to(), но всем отменял автостарт. После ставил задание tween.onComplete.add(callback, callback_context) и запускал твин twee.start(). Переменные callback, callback_context я передавал функцие конструктору анимации. Когда я еще работал командой Mozilla, они приучили меня к такой логике do_something(callback, callback_context) и все… так можно писат асинхронный код, ведь callback выполниться только тогда, когда функция завершит нужную работу. А если функция делает что-то паралельно, то это единственнй способ привести асинхронный код в синхронную логику.

  6. я внезапно отвлекся на прохождение туториала по match3 — думал, справлюсь за 3 дня
    оказалось, намного больше

    дело в том, что там на JQuery
    плюс комбинации только линейные, а я хотел сделать групповые, т.е. нормальные

    исходник туториала тут — http://www.emanueleferonato.com/2017/10/24/complete-bejeweled-prototype-made-with-jquery-updated-to-jquery-3-2-1-improving-swipe-controls-and-working-with-any-board-size/

  7. Спасибо за ссылочку, посмотрю… Как я понимаю ты хотел сделать игру на Phaser-е по их алгоритму на jQuery, но дополнить алгоритмом групового удаления?

  8. p.s. Уточни Zaxx, что ты имел в виду под «сделать груповые»? Я поклонник Montezuma 2/3, идеальная время убивалка, если где-то надо подождать =)

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">