![]() |
|
||||||||||
|
|
|
|||||
|
Вообщем мне недавно в голову пришла идея реализовать платформер (2D игра с видом сбоку, лод раннер короче =)) Попытался сделать - не получилось, выяснилось что не обладаю достаточными навыками, при попытки сделать обыкновенное движение влево/вправо при нажатии кнопки на клавиатуре столкнулся с проблемой: вообщем объект перемещается вправо/влево, но в моем случае объект - человек, то бишь должен двигать ногами, так вот, при нажатии влево/вправо он один раз полностью проигрывал анимацию движения ногами и все, или при зажатии кнопки анимация все время начиналась с начала, получалось как бы дрыганье ногами =) Я делал, чтобы при нажатии кнопки проигрывалась анимация в мувиклипе (вначале она стояла на stop'e)... Вот... Теперь сам вопрос: как можно правильно реализовать чтобы при нажатие кнопки оъект (человек) бежал влево/вправо нормально проигрывая анимацию бега
|
|
|||||
|
Цитата:
if(!Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)){ gotoAndStop(1)} |
|
|||||
|
Ну если по умному сделать, то это один клип... на определеннх кадрах у тебя он бегает влево потом в право вверх вниз, разделяет их gotoAndPlay и на метку что проигрывается. В главном же мовике надо скан клавишь поставить см пост выше, и еще один листенер на отжатие, а потом основываясь какая событелка произошла, с того кадра лодерунера и запускать, или переводить на 1... ну в общем подумай не трудно это... больше маяты чем думанья.
__________________
С уважением, Maksi. |
|
|||||
|
2TERRORist: у меня не в этом проблема, у меня проблема в том , что при зажатии кнопки влево анимация все время проигрывается с второго кадра клипа, там где стоит начало анимации движения ногами
2Буньков Максим: че т я немного непонял твою фразу =)) Во-первых я непомню что есть листнер, во - вторых какой скан клавиш? Да и еще вопрос: как сделать реагирование на платфору? ну, что если он стоит на платформе которая посередине экрана и потом сходит с нее он падает вниз... Вообщем когда ты бываешь в асе? А то вопросами нафих завалю этот топик =)) |
|
|||||
|
Листенер это хрень такая кульная, в общем прослушивает события, и выполняет функции. вобщем тебе надо евенты (события) onKeyDown и onKeyUp в общем один происходит если нажал кнопку и если держишь он помоему выполняется всевремя, в отличии от листенра Mause. ну все там функции пиши при проихождении событий
__________________
С уважением, Maksi. |
|
|||||
|
Регистрация: Jan 2002
Адрес: СПб-Denver-Лермонтов
Сообщений: 1,525
|
Цитата:
А вообще-то, вместо многих слов, - лучше маленький пример. ![]()
__________________
Для того чтобы узнавать, есть два способа: - задавать вопросы и пытаться самому на них ответить. Второй способ более продуктивный. (S.Wizard) |
|
|||||
|
onKeyUp тока для того чтоб зааттачить клип где человечик стоит. Но пожно и без этого обойтись. ну в общем в примере хорошо показано.
И еще в примере.. лучше юзай листенер, это как то все таки профессионалней, а вместо onKeyEnter юзай setInterval всяка меньше проц хавает.
__________________
С уважением, Maksi. |
|
|||||
|
2sergwizard: thx за пример, но просто тупо копировать мне не хочется, можешь объяснить пару строк оттуда? =)
1) obj={}; obj.onKeyDown = function(){ ↑↑↑↑↑↑ Во первых что делают эти 2 строки? *** 2) delete man.onEnterFrame; } } } Key.addListener(obj) man.stop(); ↑↑↑↑↑↑ И наконец эти строки ^_^ Да, и еще, как можно сделать чтобы при отжимании кнопки он плавно возвращался к начальной стойке, конечно, можно через бла бла бла }else{ man.GotoAndStop(1); но тогда он резко вернется к 1 кадру =( Конечно можно сделать на каждый кадр проверку , кадр ли это <n> и если да то проигрывать анимацию , которую вначале сделал для возварщения из кадра <n> в начальную позицию... но есть ли другие способы? =) 2Буньков Максим: ты лучше про платформы мне объясни =) Последний раз редактировалось eXaile; 28.06.2005 в 11:46. |
|
|||||
|
Цитата:
obj.onKeyDown = function(){ //при появлении нажатий кнопки выполняем функцию delete man.onEnterFrame;//убиваем из оперы данную функцию... } } } Key.addListener(obj)//а вот и делаем obj листенером Key( он ща будет слшушать все события кнопок при нажатии... man.stop();//ну это сам догадайся... А что тебя про платформы интересует?...
__________________
С уважением, Maksi. |
|
|||||
|
Ладно, чтоб реагировал на платформы -
Есть такая штука - getBounds(targetCoordinatSpace) Пишешь в ентер фрэйме bound=this.getBounds(_root); а далее при помощи yMax,yMin,xMin,yMax выевляешь максимальные и минимальные значения x и y. Далее прохитестиваешь их всех с игроком - вот он и чувствует платформы. P.S злость я на тебе не срываю, просто ты просишь систему игрового скрипта. А потом, скорее всего, и сам исходник. Дое того ышшо не дошло. И мой тебе совет - лод раннер игруха не из простых, лучше начни с арканоида. Хорошего. Ето не так то просто сделать в первый раз, как кажется. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:27. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|