Просмотр полной версии : Плавный прыжок при нажатии SPACEBAR
Вот у меня проблема, как реализовать плавный прыжок MovieClipa.
Я понимаю надо делать так, прибавляем постепенно y до определённой отметки и потом опускаем на столько же на сколько прибавили,но как это сделать плавно ?
if(Key.isDown(Key.SPACE))
{
_root.myobject._y+=1; и так до +200
потом отнемаем плавно -1;
}Но как слелать чтобы плавно ? циклом пробывал не идёт ...
var H:Number = 30;
var G:Number = 1;
var speed:Number = -H;
myobject.onEnterFrame = function() {
if (Key.isDown(Key.UP) || (!Key.isDown(Key.UP) && speed>-H)) {
this._y += speed;
speed += G;
if (speed>H) {
speed = -H;
}
}
};
Ну где-то так, вроде как на 200 прыгает, а для чего вам это ? ведь это всё образно, есть ньюансы
по синусоидальной зависимости
D12 хочу вот игрушку сделать =)
Это понятно что игрушку, у тебя будут различные плоскости(островки по которым нужно прыгать ? или прыжок так для перескакивания ловушек и врагов) ?
различные плоскости на разных высотах
ууу... тогда все прыжки данные выше отпадают, для остравков они негодятся,
картинка статичная или планируется скроллинг уровня?
покажи эскиз к чему ты стремишся ?
Вот держи прыжок по твоим задачам
shadowJump = true; pozY = heroShadow._y; score = scoreStar = 0;
speed = 3;speedVert = 1;count = 0; pozY = heroShadow._y;
timer = 60;countStar = 0;speedShadow = 9;xx = -3.14;
heroShadow.onEnterFrame = function () {
if (shadowJump) { shadowFly (); }
};
shadowFly = function () {
xx += 0.04; sinus = Math.cos (xx);
heroShadow._y += (speedShadow * sinus);
if (xx > 0) {
shadowJump = false; heroShadow._y = pozY;
}
};
but.onPress = function () {
shadowJump = true; xx = -3.14;
};
маи экспирименты с прыжками
коментить не буду
koIIImarik
05.11.2007, 03:27
На мой взгляд лучше использовать класс Tween.
Описание и исходники можете посмотреть тут (http://www.flashist.ru/2007/11/05/programmnaya-animaciya-i-ne-tolko%e2%80%a6/)
Вот ссылка на пример (http://www.flashist.ru/files/tween/1.swf)
Зачем так парится если все просто!?
Вот!
var ySpeed = 3;//скорость которая отпускает мув вниз
var jump = true;//прыжок(вкл или выкл)
var strengthJump = 10;//сила прыжка
onEnterFrame = function() {
ySpeed++;//к ySpeed прибаляем по 1
cube._y += ySpeed;//к Y мува прибавляем ySpeed
if(cube._y >= 300 ) {//если мув опустился ниже границ экрана
cube._y = 300;//ставим его в эти кординаты
jump = false;//отключуем прыжок
}
if(Key.isDown(Key.SPACE) && jump == false) {//если жмем пробел и прыжок выкл(чтобы в воздухе не прыгать)
jump = true;//включаем прыжок
ySpeed =-strengthJump;//ySpeed равно отрицательному strengthJump
}
}
Надо создать флеху с шириной 200 а высотой 300
cube это твой мувик
strengthJump это сила прыжка
кстати
if(cube._y >= 300 ) {//300 это высота твоего ролика(чтобы он не упал далеко вниз
cube._y = 300;//ставим его в эти кординаты
jump = false;//отключуем прыжок
}
как понял 300 это высота твоего ролика
KoIIImarik класс твин это анимация, прыжок это математика =) если плоскость подразумевается одна то сгодится и твин, если подразумевается много плоскостей то твин непрокатит, ведь прыгая с верхней плоскасти на нижнюю класс твин закончит свою анимацию куда раньше :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.