Прыжок?!
Прыжок?!
Хочу создать маленькую игрушку, и персонаж должен сделать прыжок, вроде просто, но не получается. Не поможете?
Re: Прыжок?!
конкретнее, что уже есть, что пробовал, что вышло, что должно было, исходники и прочее
Re: Прыжок?!
Ну вообщем запланировал сделать игрушку, раньше ещё такая на телефоне была, там красный шарик катится и всякие припятствия проходит...
Пока что в процессе продумывания, катание по карте примерно придумал, а вот с прыжком проблема...
пробовал так:
ну или что то вроде этого, не вышло, как я и предполагал...
Потом пробовал циклом, эффект тот же...
Потом сделал таймер, и если сделать по таймеру только движение вверх, то нормально, к примеру на 5 пикселов двигается за 5 сек., если после добавить по таймеру ещё и движение вниз, он снова остается на месте...
И тут я решил, ведь я по-любому занимаюсь изобретанием велосипеда, и это делали много раз до меня, так вот, не подскажите как это осуществить?!
Пока что в процессе продумывания, катание по карте примерно придумал, а вот с прыжком проблема...
пробовал так:
Код: Выделить всё
shar.y -=5;shar.y +=5;Потом пробовал циклом, эффект тот же...
Потом сделал таймер, и если сделать по таймеру только движение вверх, то нормально, к примеру на 5 пикселов двигается за 5 сек., если после добавить по таймеру ещё и движение вниз, он снова остается на месте...
И тут я решил, ведь я по-любому занимаюсь изобретанием велосипеда, и это делали много раз до меня, так вот, не подскажите как это осуществить?!
Re: Прыжок?!
Как вариант
Остается только в нужный момент, по нажатию клавиши или еще там когда присвоить свойству jumpStep значение 1.
Код: Выделить всё
shar.jumpSpeed = 15;shar.jumpStep = 0; shar.addEventListener(Event.ENTER_FRAME, goShar); function goShar(e:Event):void { if(e.target.jumpStep == 1){ if(e.target.jumpSpeed > 0){ e.target.y -= e.target.jumpSpeed; e.target.jumpSpeed--; } else { e.target.jumpStep = 2; } } else if(e.target.jumpStep == 2){ if(e.target.jumpSpeed < 25){ e.target.y += e.target.jumpSpeed; e.target.jumpSpeed++; } else { e.target.jumpStep = 0; } }}Re: Прыжок?!
Впринципе рабтает, только я не пойму, почему с каждым прыжком он становится всё менее плавным?Alazaur писал(а):Как вариантОстается только в нужный момент, по нажатию клавиши или еще там когда присвоить свойству jumpStep значение 1.Код: Выделить всё
shar.jumpSpeed = 15;shar.jumpStep = 0; shar.addEventListener(Event.ENTER_FRAME, goShar); function goShar(e:Event):void { if(e.target.jumpStep == 1){ if(e.target.jumpSpeed > 0){ e.target.y -= e.target.jumpSpeed; e.target.jumpSpeed--; } else { e.target.jumpStep = 2; } } else if(e.target.jumpStep == 2){ if(e.target.jumpSpeed < 25){ e.target.y += e.target.jumpSpeed; e.target.jumpSpeed++; } else { e.target.jumpStep = 0; } }}
Re: Прыжок?!
Garch, не должно такого быть. Во всяком случае не из-за этого кода. Может у флешки память текет?
Re: Прыжок?!
Код: Выделить всё
stage.addEventListener(KeyboardEvent.KEY_DOWN, hod); function hod(event:KeyboardEvent):void{ switch (event.keyCode) { case Keyboard.UP: { movieClip_1.jumpSpeed = 15;movieClip_1.jumpStep = 1; movieClip_1.addEventListener(Event.ENTER_FRAME, goShar);function goShar(e:Event):void { if(e.target.jumpStep == 1){ if(e.target.jumpSpeed > 0){ e.target.y -= e.target.jumpSpeed; e.target.jumpSpeed--; } else { e.target.jumpStep = 2; } } else if(e.target.jumpStep == 2){ if(e.target.jumpSpeed < 16){ e.target.y += e.target.jumpSpeed; e.target.jumpSpeed++; } else { e.target.jumpStep = 0; } }} break; } case Keyboard.LEFT: { movieClip_1.x -= 5; break; } case Keyboard.RIGHT: { movieClip_1.x += 5; break; } }}Это как бы пока планирование, так что не пугайся что он короткий) Потом буду пытаться сделать взаимодействие с картой) если знаешь как и это напиши)
Re: Прыжок?!
И оно работает? 
Вот как-то так:
Вот как-то так:
Код: Выделить всё
movieClip_1.jumpSpeed = 15; movieClip_1.jumpStep = 0; movieClip_1.speedX = 0; movieClip_1.speedMax = 10 movieClip_1.directionX = 0; movieClip_1.addEventListener(Event.ENTER_FRAME, goShar); stage.addEventListener(KeyboardEvent.KEY_DOWN, hod); stage.addEventListener(KeyboardEvent.KEY_UP, unhod); function hod(event:KeyboardEvent):void { switch (event.keyCode) { case Keyboard.UP: { if(!movieClip_1.jumpStep) movieClip_1.jumpStep = 1; break; } case Keyboard.LEFT: { if(!movieClip_1.directionX) movieClip_1.directionX = 1; break; } case Keyboard.RIGHT: { if(!movieClip_1.directionX) movieClip_1.directionX = 2; break; } } } function unhod(event:KeyboardEvent):void { if((event.keyCode == Keyboard.LEFT) || ( event.keyCode == Keyboard.RIGHT)) movieClip_1.directionX = 0; } function goShar(e:Event):void { if(e.target.jumpStep == 1){ if(e.target.jumpSpeed > 0){ e.target.y -= e.target.jumpSpeed; e.target.jumpSpeed--; } else { e.target.jumpStep = 2; } } else if(e.target.jumpStep == 2){ if(e.target.jumpSpeed < 15){ e.target.jumpSpeed++; e.target.y += e.target.jumpSpeed; } else { e.target.jumpStep = 0; } } if(e.target.directionX == 1) { if(e.target.speedX > -e.target.speedMax)e.target.speedX--; } else if(e.target.directionX == 2) { if(e.target.speedX < e.target.speedMax)e.target.speedX++; } else { if(e.target.speedX > 0) e.target.speedX--; else if (e.target.speedX < 0) e.target.speedX++; } movieClip_1.x += e.target.speedX; }Re: Прыжок?!
Ну да, почему нет?! Но я предупреждал, это только процесс планирования, так что)Alazaur писал(а):И оно работает?![]()
Сейчас этот твой попробую)
Re: Прыжок?!
Круто) Вообще красиво) Спасибо большое)
Ещё бы хождение по карте сделать)
Ещё бы хождение по карте сделать)

