Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   вопрос по реализации платформера (http://www.flasher.ru/forum/showthread.php?t=66097)

eXaile 27.06.2005 14:09

вопрос по реализации платформера
 
Вообщем мне недавно в голову пришла идея реализовать платформер (2D игра с видом сбоку, лод раннер короче =)) Попытался сделать - не получилось, выяснилось что не обладаю достаточными навыками, при попытки сделать обыкновенное движение влево/вправо при нажатии кнопки на клавиатуре столкнулся с проблемой: вообщем объект перемещается вправо/влево, но в моем случае объект - человек, то бишь должен двигать ногами, так вот, при нажатии влево/вправо он один раз полностью проигрывал анимацию движения ногами и все, или при зажатии кнопки анимация все время начиналась с начала, получалось как бы дрыганье ногами =) Я делал, чтобы при нажатии кнопки проигрывалась анимация в мувиклипе (вначале она стояла на stop'e)... Вот... Теперь сам вопрос: как можно правильно реализовать чтобы при нажатие кнопки оъект (человек) бежал влево/вправо нормально проигрывая анимацию бега

TERRORist 27.06.2005 17:02

Цитата:

Сообщение от eXaile
Вообщем мне недавно в голову пришла идея реализовать платформер (2D игра с видом сбоку, лод раннер короче =)) Попытался сделать - не получилось, выяснилось что не обладаю достаточными навыками, при попытки сделать обыкновенное движение влево/вправо при нажатии кнопки на клавиатуре столкнулся с проблемой: вообщем объект перемещается вправо/влево, но в моем случае объект - человек, то бишь должен двигать ногами, так вот, при нажатии влево/вправо он один раз полностью проигрывал анимацию движения ногами и все, или при зажатии кнопки анимация все время начиналась с начала, получалось как бы дрыганье ногами =) Я делал, чтобы при нажатии кнопки проигрывалась анимация в мувиклипе (вначале она стояла на stop'e)... Вот... Теперь сам вопрос: как можно правильно реализовать чтобы при нажатие кнопки оъект (человек) бежал влево/вправо нормально проигрывая анимацию бега

Поставь в каждом кадре

if(!Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)){
gotoAndStop(1)}

Буньков Максим 27.06.2005 20:19

Ну если по умному сделать, то это один клип... на определеннх кадрах у тебя он бегает влево потом в право вверх вниз, разделяет их gotoAndPlay и на метку что проигрывается. В главном же мовике надо скан клавишь поставить см пост выше, и еще один листенер на отжатие, а потом основываясь какая событелка произошла, с того кадра лодерунера и запускать, или переводить на 1... ну в общем подумай не трудно это... больше маяты чем думанья.

eXaile 27.06.2005 20:27

2TERRORist: у меня не в этом проблема, у меня проблема в том , что при зажатии кнопки влево анимация все время проигрывается с второго кадра клипа, там где стоит начало анимации движения ногами
2Буньков Максим: че т я немного непонял твою фразу =)) Во-первых я непомню что есть листнер, во - вторых какой скан клавиш? Да и еще вопрос: как сделать реагирование на платфору? ну, что если он стоит на платформе которая посередине экрана и потом сходит с нее он падает вниз... Вообщем когда ты бываешь в асе? А то вопросами нафих завалю этот топик =))

Буньков Максим 27.06.2005 20:45

Листенер это хрень такая кульная, в общем прослушивает события, и выполняет функции. вобщем тебе надо евенты (события) onKeyDown и onKeyUp в общем один происходит если нажал кнопку и если держишь он помоему выполняется всевремя, в отличии от листенра Mause. ну все там функции пиши при проихождении событий

sergwizard 28.06.2005 00:11

Вложений: 1
Цитата:

....и еще один листенер на отжатие, а потом основываясь какая событелка произошла,....
....вобщем тебе надо евенты (события) onKeyDown и onKeyUp
Не слишком ли много листенеров ты советуешь? Одного не достаточно? А 'onKeyUp' зачем?
А вообще-то, вместо многих слов, - лучше маленький пример. :)

Буньков Максим 28.06.2005 06:55

onKeyUp тока для того чтоб зааттачить клип где человечик стоит. Но пожно и без этого обойтись. ну в общем в примере хорошо показано.
И еще в примере.. лучше юзай листенер, это как то все таки профессионалней, а вместо onKeyEnter юзай setInterval всяка меньше проц хавает.

eXaile 28.06.2005 11:14

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Буньков Максим: ты лучше про платформы мне объясни =)

Psycho Tiger 28.06.2005 14:25

Ты заявляешь, что хочешь сделать 2d игру.
Ты просишь чтобы тебе обьяснили, как сделать, чтобы он
ходил, и шевелил ношками.
Далее, ты хочешь чтобы он прыгал, падал вниз, забирался на платформы.
И наконец, чтобы он не проходил сквозь ету платформу.
Что тебе осталось? Проверятьрешен ли пазл и поднятие камней/сундуков и прочего.
ВСЁ!!!
Ты хочешь чтобы за тебя всё сделали?
Обясняю на последней строке:
http://www.flasher.ru/forum/showthre...232#post385935

eXaile 28.06.2005 16:34

я пока ничего не хочу делать, я хочу разобраться в скриптах, вопрос про прыжки я не задавал, я не выкладывал сюда исходник со словами "нате сделайте чтобы работало", я просто задаю вопросы по тому, что мне не понятно, я не прошу выкладывать готовые скрипты, просто хочу чтобы мне оъяснили, тебе жалко чтоли ? Заметим: "thx за пример, но просто тупо копировать мне не хочется, можешь объяснить пару строк оттуда?" , если бы я преследовал цель чтобы за меня все сделали я просто взял бы себе этот скрипт и промолчал, мне бы нафих не надо было спрашивать что такое листнер, и уж поверь, если бы после такого всего описания я сделал игру я бы написал что эту игру почти всю делал НЕ Я...

З.Ы. если тебя что то очень сильно седня раздражает не надо вымещать свою злобу на мне, я тебе не кошка тренировочная

Буньков Максим 28.06.2005 20:09

Цитата:

Сообщение от eXaile
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Буньков Максим: ты лучше про платформы мне объясни =)

obj={};// Создаем объект, там где то его объявили листенером Key
obj.onKeyDown = function(){ //при появлении нажатий кнопки выполняем функцию
delete man.onEnterFrame;//убиваем из оперы данную функцию...
}
}
}
Key.addListener(obj)//а вот и делаем obj листенером Key( он ща будет слшушать все события кнопок при нажатии...
man.stop();//ну это сам догадайся...
А что тебя про платформы интересует?...

Psycho Tiger 29.06.2005 11:43

Ладно, чтоб реагировал на платформы -
Есть такая штука - getBounds(targetCoordinatSpace)
Пишешь в ентер фрэйме
bound=this.getBounds(_root);
а далее при помощи yMax,yMin,xMin,yMax выевляешь
максимальные и минимальные значения x и y.
Далее прохитестиваешь их всех с игроком - вот он и чувствует платформы.
P.S злость я на тебе не срываю, просто ты просишь систему игрового скрипта.
А потом, скорее всего, и сам исходник. Дое того ышшо не дошло.
И мой тебе совет - лод раннер игруха не из простых, лучше начни с арканоида.
Хорошего. Ето не так то просто сделать в первый раз, как кажется.

eXaile 29.06.2005 23:05

2Буньков Максим: thx
2Psycho Tiger
Хм, вот мне и не кажется что он простой =)) Я не знаю как сделать чтобы под правильным углом все отражалось, знаю только из физики что угол ٩ равен углу ß , всмысле угол падения равен углу отражения...
ЗЫ: Ваше впринципе что самое простое можно сделать чтоб потрениться?
ЗЗЫ: видел как в некоторых мувиках делают вроде бы простой эффект, когда есть морда, и глаза у этой морды следят за мышкой - сложно ли это делается? Всегда хотел сделать игру с полным видом сверху где управление бегом ASDW а обзор мышкой, а-ля кримсон лэнд =)) Жаль мое хотение неосуществимо , хотя хз на www.stickpage.com качал игру StickRPG как то так, так вот там тоже полный вид сверху , только смотреть не мышой...

Psycho Tiger 03.07.2005 10:10

Вложений: 1
Цитата:

Сообщение от eXaile
2Буньков Максим: thx
2Psycho Tiger
Хм, вот мне и не кажется что он простой =)) Я не знаю как сделать чтобы под правильным углом все отражалось, знаю только из физики что угол ٩ равен углу ß , всмысле угол падения равен углу отражения...
ЗЫ: Ваше впринципе что самое простое можно сделать чтоб потрениться?
ЗЗЫ: видел как в некоторых мувиках делают вроде бы простой эффект, когда есть морда, и глаза у этой морды следят за мышкой - сложно ли это делается? Всегда хотел сделать игру с полным видом сверху где управление бегом ASDW а обзор мышкой, а-ля кримсон лэнд =)) Жаль мое хотение неосуществимо , хотя хз на www.stickpage.com качал игру StickRPG как то так, так вот там тоже полный вид сверху , только смотреть не мышой...

Вот... Дальще думай сам.

Буньков Максим 03.07.2005 21:26

какие касивые божки...

Psycho Tiger 11.07.2005 13:25

Цитата:

Сообщение от буньков максим
какие касивые божки...

вообще то выдрал из сэмплов флэша 6 =)


Часовой пояс GMT +4, время: 11:22.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.