![]() |
|
||||||||||
|
|||||
|
Guest
Сообщений: n/a
|
Как сделать прыжок в игре путем программирования?
|
|
|||||
|
Куда прыгать будем? (т.е. уточни вопрос)
![]()
__________________
судью - на мыло, из игроков - вить веревки. |
|
|||||
|
Guest
Сообщений: n/a
|
Прыжки во флэше - это моя специальность
В объект Movie Clip вставляешь скрипт: onClipEvent (load) {
H = "число";
G = "число";
speed = -H;
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.UP) || (!Key.isDown(Key.UP) && speed>-H)) {
_y += speed;
speed += G;
if (speed>H) {
speed = -H;
}
}
}
В этом примере прыжок осуществляется при нажатии клавиши "UP" (т.е. ВВЕРХ). Вместо "UP" можно написать другую клавишу, например SPACE (пробел) и др. Прыжок можно сочетать с движением вправо или влево. Тогда получится прыжок в длину. Удачи! ![]() |
|
|||||
|
логичнее мне кажется прыжок определять начальной скоростью
MovieClip.prototype.jump=function(v){ this.onEnterFrame=function(){ with(this){ _y-=v; v-=g; if(_y>=h0){ _y=h0; delete onEnterFrame; } } } } g=9.81;//ускорение(надо бы на фпс поделить) h0=mc._y;//уровень земли Key.addListener(mc); mc.onKeyDown=function(){ if(Key.isDown(Key.UP)) this.jump(50);//скорость } Последний раз редактировалось silin; 04.04.2004 в 22:31. |
|
|||||
|
вот до кучи влево-вправо учел
MovieClip.prototype.jump=function(v,dir){//скорость, направление var vv=v*Math.cos(Math.PI*dir/180); var vh=v*Math.sin(Math.PI*dir/180); this.onEnterFrame=function(){ with(this){ _y+=-vv; _x+=vh; vv-=g; if(_y>=h0){ _y=h0; delete onEnterFrame; } } } } g=9.81;//ускорение h0=mc._y;//уровень земли Key.addListener(mc); mc.onKeyDown=function(){ var dir=0; if(Key.isDown(Key.LEFT))dir-=45; if(Key.isDown(Key.RIGHT))dir+=45; if(Key.isDown(Key.UP)) this.jump(50,dir);//скорость } |
![]() |
Часовой пояс GMT +4, время: 21:11. |
|
|
« Предыдущая тема | Следующая тема » |
|
|