|
|
|||||
Регистрация: Nov 2010
Сообщений: 11
|
Анимация персонажа (платформер)
Привет. Пытаюсь сделать платформер использую AS2. Управление персонажем есть. Персонаж у меня в виде мувика перемещаться и прыгать он уже умеет. В дальнейшем хочу сделать ему анимацию. Но вот как ее переключать в той или иной ситуации не знаю, например (идет, бежит, стоит, погиб, прыгнул и т.д.) может кто делал.
вот код управления персонажем: onClipEvent (load) { var platforma:MovieClip = _root.platforma; var grav:Number = 0; var gravity:Number = 2; var speed:Number = 7; var maxJump:Number = -12; var touchingGround:Boolean = false; } onClipEvent (enterFrame) { _y += grav; grav += gravity; while (platforma.hitTest(_x, _y, true)) { _y -= gravity; grav = 0; } if (platforma.hitTest(_x, _y + 5, true)) { touchingplatforma = true; } else { touchingplatforma = false; } if (Key.isDown(Key.RIGHT)) { _x += speed; } if (Key.isDown(Key.LEFT)) { _x -= speed; } if (Key.isDown(Key.UP) && touchingplatforma) { grav = maxJump; } if (platforma.hitTest(_x + (_width / 2), _y - (_height / 2), true)) { _x -= speed; } if (platforma.hitTest(_x - (_width / 2), _y - (_height / 2), true)) { _x += speed; } if (platforma.hitTest(_x, _y - (height), true)) { grav = 3; } } |
|
|||||
Регистрация: Mar 2007
Сообщений: 207
|
тут есть базовые принципы
http://xitri.com/2009/06/16/simple-p...me-engine.html |
|
|||||
Регистрация: Nov 2010
Сообщений: 11
|
Да смотрел я это, когда только начинаешь сложновато. Я уже добился определенных результатов как закончу обязательно покажу. Ну и всетаки может кто еще че нибудь знает как реализовать анимацию персонажа. Ну точнее саму анимацию, а управление анимацией.
Последний раз редактировалось haer; 12.05.2011 в 21:40. |
|
|||||
Регистрация: Sep 2005
Сообщений: 106
|
Переключайте анимацию в зависимости от применяемого управления и игровой ситуации:
1) Если в прыжке - анимацию прыжка (переключение как в момент самого прыжка, так и при падении, на что должна быть соответствующая проверка) 2) Нажали идти вправо-влево (при этом !прыжок) - ставим анимацию бега Если вас интересует, как именно ее менять - внутри клипа делается раскадровка с состояниями (анимация циклится там же), потом просто переключаются кадры. Это вам так, простенький совет. Умные могут вам посоветовать нарезать в битмапдаты и много еще чего. Последний раз редактировалось petyar; 12.05.2011 в 22:06. |
|
|||||
Регистрация: Nov 2010
Сообщений: 11
|
Да это я все понимаю и уже анимация у меня есть мне интересны механизмы AS2 как в определенной ситуации воспроизводить ту или иную анимацию.
Сначала попробовал сделать следующее: тоесть при нажатии клавиши стрелка вправо воcпроизводить 1 кадр на котором находится мувик с анимацией идущего перса вправо. Но это не очень хороший способ хотя хоть как то заработало. |
|
|||||
Регистрация: Sep 2005
Сообщений: 106
|
В таком случае держите в памяти предыдущее состояние, чтобы не переключать лишний раз. Вроде такого:
|
|
|||||
Регистрация: Nov 2009
Сообщений: 10
|
и добавь проверку, когда персонаж касается ногами об пол jump = false.
|
|
|||||
Регистрация: Nov 2010
Сообщений: 11
|
Привет вот как то так, но многое из этого меня не устраивает во время перемещения персонаж буквально рябит на мониторе, что на него невозможно глядеть + еще когда меняешь направление движения тоже как то резко все происходит ну и плюс заторможенное приземление после прыжка надо что то с гравитацией делать.
здесь swf кому интересно посмотреть что получилось. http://file.qip.ru/video/w5aCRwwO/test.html onClipEvent (load) { speed = 20; isJumping = false; jumpSpeed = 2; startY = _y; scale = _xscale; } onClipEvent (enterFrame) { if (isJumping) { _y += jumpSpeed; jumpSpeed += 1; if (_y>=startY) { _y = startY; isJumping = false; speed = 10; } } else { if (Key.isDown(Key.UP)) { isJumping = true; jumpSpeed = -20; speed = 6; } } if (Key.isDown(Key.LEFT)) { play(); _x -= speed; _xscale = -scale; } else { if (Key.isDown(Key.RIGHT)) { play(); _x += speed; _xscale = scale; } else { stop(); } } } Последний раз редактировалось haer; 16.05.2011 в 23:09. |
|
|||||
ооо... у вас сразу все плохо - код на клипах.
это и смотреть никому не интересно. в примере - все по-другому. |
|
|||||
Регистрация: Nov 2010
Сообщений: 11
|
не понял, что значит в примере
|
Часовой пояс GMT +4, время: 03:44. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|