Я делаю игру и хочу анимировать своего персонажа (атака, ходьба и т. д.), но понятия не имею, как это сделать. Я знаю, что это не цикл for, потому что если это так, анимация будет воспроизводиться мгновенно, и вы не сможете ее увидеть. Я скачал образец листа спрайтов и протестирую его, как только научусь это делать.
Анимация игрового спрайта
Ответы (4)
Вы можете получить анимацию спрайтов с помощью функции CSS3 steps(), если она поддерживается. . Или простой подход javascript с использованием таймеров (setTimeout
, setInterval
).
Вот простые примеры того и другого: http://codepen.io/anon/pen/hCeuG
Однако для части JS лучше, если у вас есть один игровой цикл, в котором вы обновляете свою анимацию, это просто пример. Вы можете найти очень подробное объяснение игрового цикла javascript здесь: http://nokarma.org/2011/02/02/javascript-game-development-the-game-loop/index.html
setInterval
, чтобы сделать простой пример использования таблицы спрайтов в JS вместо CSS3. Лучший подход — создать реальный игровой цикл, как описано в статье, на которую я дал ссылку. В этом случае вы будете использовать requestAnimationFrame
там, где это возможно, это лучший выбор. И у вас будет более стабильная частота кадров.
- person ZER0; 09.02.2013
Game.update
и Game.draw
. Первый содержит логику — например, обновить позицию или состояние спрайта — второй используется для рисования этого на экране. Таким образом, у вас есть бесконечный цикл, который на основе состояния будет рисовать спрайт. Если вы нажмете кнопку атаки, то вам нужно будет обновить эту информацию в Game.update
, а в Game.draw
вы нарисуете эту анимацию вместо стандартных.
- person ZER0; 09.02.2013
есть доступные игровые библиотеки на основе JS, которые существуют с единственной целью сделать игры проще. вы должны использовать один из них.
Я работал над некоторыми из них, и мне нравится CreateJS с расширенными поддержка звуков и спрайтов. на самом деле вы можете создавать спрайты на лету, используя анимацию
Вы можете использовать бесплатные спрайты или попробовать сделать это с помощью Photoshop (если вы профессионал!) или Sprite Maker (для базовых пользователей!)
для 3D-моделей вы можете использовать
Я тоже был в такой ситуации.
CreateJS мне очень помог.
Эта библиотека имеет очень хорошую документацию по работе со спрайтами и растровой анимацией.
В EaselJS есть примеры с исходным кодом, чтобы показать, как использовать лист спрайтов в вашей игре.
Другой блог, который был полезен для манипулирования листами спрайтов, был Дэвид Руссет: HTML5 Gaming: анимация спрайтов в Canvas с помощью EaselJS
Я думаю, что это может быть полезно для вас