Хм, возможно вы и правы. Я все-таки сначала сделал игру для себя, а потом уже прошел все шаги в статье, исправляя какие-то мелочи. Если кто-то попробует пройти последовательность шагов с нуля, пусть отпишется в комментах, я укажу обновленное время:).
А какую именно демку? Некоторые проблемы сейчас, безусловно, есть. У меня, например, пара картинок не отображается в хроме, но рисуется в сафари. Надеюсь, разработка движка будет идти бодро и все подобные баги найдут свое решение или хотя бы обход.
Очень много багов, чтобы останавливаться на конкретике. Игры зависли все, некоторые демки показывали просто черный экран. Буду репортить, репортить-то ума много не надо… надеюсь. Возможно просто демки не успевают обновляться за апдейтами фреймворка.
Не уверен, что понял вопрос, при столкновении мы просто меняем горизонтальную составляющую скорости velocity.x, а velocity.y меняется на противоположное значение самим фазером.
Ну допустим я не хочу играть с компьютером. Я добавляю socket.io, и хочу сделать игру для двух юзеров. Передавать x, y шарика не рентабельно, я знаю скорость и конечную точку, на стороне другого игрока ее отрисовать пара пустяков. Как узнать конечную точку, куда летит шарик?)
Т.е. под конечной точкой подразумевается одна из границ экрана или одна из ракеток (точки, где шарик изменит направление)? Может, если оба клиента одинаковые и используют один и тот же код (а так, думаю, обычно и происходит), проще передавать измененные значения velocity? Тогда можно будет не заморачиваться с ручным изменением координат, а использовать стандартную отрисовку.
Хотя, у меня вообще нет опыта разработки мультиплеерных игр, возможно такой способ чем-то чреват:).
Ну так за 20 минут же сделали, за все приходится расплачиваться. Вот если бы потратили часа 2 — тогда бы и нагрузка была минимум и удовольствия от создания и самой игры — больше.
Вроде за это критиковали и флеш, а оказалось, что HTML5 может жрать ресурсы не хуже, особенно в умелых руках:). А если серьезно, то первая версия фреймворка вышла месяц назад, некоторые фундаментальные элементы функционала все еще активно изменяются, давайте немного подождем.
Кстати, можно спросить у автора на форуме www.html5gamedevs.com, он оперативно отвечает на вопросы.
Да, извините, надо было более явно написать о требованиях. Для самой игрушки сервер PHP не обязателен, но все примеры из комплекта используют именно PHP, а так как документация пока в состоянии разработки, без них трудновато разбираться.
Спасибо за статью! Единственное отмечу, что ваш пример кода в Fr. версии 2014 (т.е. текущая) полностью не поддерживает ваш код. Более того, пропадают объекты и так далее.
Да, к сожалению, слишком много всего поменялось. Но исходники есть на гитхабе, если кто-то хочет — может подправить все под текущую версию фазера. Я в данный момент им не занимаюсь, поэтому не смогу в ближайшее время обновить пример.
Пишем HTML5-игру за 20 минут, или введение в Phaser framework