forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Физика в 2D (http://forum.boolean.name/showthread.php?t=15906)

Okay 24.11.2011 23:26

Физика в 2D
 
Уже второй день мучаюсь, не могу сделать нормальный прыжок.
Возможно ли покадрово его сделать? Но только чтобы это не мешало в дальнейшем.
Вот пример

HolyDel 24.11.2011 23:34

Ответ: Физика в 2D
 
лучше двигать y позицию спрайта - меньше проблем будет.

Reizel 24.11.2011 23:36

Ответ: Физика в 2D
 
Это физика ? Оо

Okay 24.11.2011 23:38

Ответ: Физика в 2D
 
Мне нужен прыжок. Со своими усилиями я могу сделать только так.
Если вам не трудно, помогите, может у кого код есть как прыжок сделать?

moka 24.11.2011 23:54

Ответ: Физика в 2D
 
Есть гравитация, постоянно тянет объект предположим вниз. Далее есть объект, имеет свою скорость инерции передвижения. Эта скорость изменяется под влиянием например трения, так и гравитации. Каждый цикл например если игрок ходит по земле, скорость инерции по координате X будет уменьшаться до нуля.
И каждый кадр скорость инерции игрока по Y будет уменьшаться, и даже ниже нуля - т.к. гравитация вниз. Как только игрок дотронеца до земли, скорость инерции по Y нужно установить на ноль.
Получается что просто установив Y инерции игрока на положительное число, то это значение по ходу времени будет уменьшаться.
Далее постоянно двигаешь игрока на скорость инерции по каждой оси.
Будет тебе прыжок.

А вообще, если до такого не додумываешься, то рано на форум полез, тебе нада примеры сомому кода поковырять, побольше эксперементов - меньше форума.

Gector 24.11.2011 23:55

Ответ: Физика в 2D
 
Код:

player_y
player_yspeed=0
player_yaccel=0.1
if player_y<y_floor
    player_yspeed=player_yspeed+player_yaccel
    player_y=player_y+player_yspeed
else
    player_yspeed=0
endif
DrawImage player, x, player_y


Okay 25.11.2011 00:09

Ответ: Физика в 2D
 
Цитата:

Сообщение от MoKa (Сообщение 211113)
Есть гравитация, постоянно тянет объект предположим вниз. Далее есть объект, имеет свою скорость инерции передвижения. Эта скорость изменяется под влиянием например трения, так и гравитации. Каждый цикл например если игрок ходит по земле, скорость инерции по координате X будет уменьшаться до нуля.
И каждый кадр скорость инерции игрока по Y будет уменьшаться, и даже ниже нуля - т.к. гравитация вниз. Как только игрок дотронеца до земли, скорость инерции по Y нужно установить на ноль.
Получается что просто установив Y инерции игрока на положительное число, то это значение по ходу времени будет уменьшаться.
Далее постоянно двигаешь игрока на скорость инерции по каждой оси.
Будет тебе прыжок.

А вообще, если до такого не додумываешься, то рано на форум полез, тебе нада примеры сомому кода поковырять, побольше эксперементов - меньше форума.

В принципе понял. То есть у притяжения допустим скорость = 3. А у прыжка будет скорость равна 7. Тогда player пойдет вверх. Ну и собственно уменьшать её с каждым кадром до 0. А потом просто притяжение вернет player'a назад. Так ведь?

Gector 25.11.2011 01:30

Ответ: Физика в 2D
 
Цитата:

Сообщение от Okay (Сообщение 211117)
В принципе понял. То есть у притяжения допустим скорость = 3. А у прыжка будет скорость равна 7. Тогда player пойдет вверх. Ну и собственно уменьшать её с каждым кадром до 0. А потом просто притяжение вернет player'a назад. Так ведь?

Да. Тот код как раз об этом.

Gamemaker1 22.05.2013 10:33

Ответ: Физика в 2D
 
Цитата:

Сообщение от Okay (Сообщение 211117)
В принципе понял. То есть у притяжения допустим скорость = 3. А у прыжка будет скорость равна 7. Тогда player пойдет вверх. Ну и собственно уменьшать её с каждым кадром до 0. А потом просто притяжение вернет player'a назад. Так ведь?

Да, только скорость притяжения - 9,8 м/с. Соответственно, и скорость прыжка побольше должна быть.

Nikich 22.05.2013 17:36

Ответ: Физика в 2D
 
Эм. Во-первых, ускорение свободного падения. Во-вторых, откуда такие данные? В игре все измеряется в пикселях, а не метрах, следовательно и масштаб совсем другой. Поэтому, ускорение свободного падения может быть любым, в зависимости от масштаба.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot