forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   FAQ (http://forum.boolean.name/forumdisplay.php?f=15)
-   -   Самый плавный прыжок. (http://forum.boolean.name/showthread.php?t=13767)

Ganociy 23.11.2010 22:14

Самый плавный прыжок.
 
Вложений: 1
Сам подумал, сам реализовал.


Function Jump()

If EntityCollided (Player,TypeWorld)<>0 Then
trueJump=1
Else
trueJump=0
EndIf

If KeyHit (57) And trueJump=1 Then
Gravity=1
EndIf

Gravity=Gravity-0.04

TranslateEntity player,0,Gravity,0
End Function

И причём она (функция) покороче других (функций).:)

Вот исходник. Пример как для новичков, так и для "старичков":) .

is.SarCasm 23.11.2010 22:42

Ответ: Самый плавный прыжок.
 
Где ускорение?

Ganociy 23.11.2010 23:03

Ответ: Самый плавный прыжок.
 
какое? ты пример смотрел? если нет, то посмотри)

Morganolla 23.11.2010 23:43

Ответ: Самый плавный прыжок.
 
Что значит плавный? Если имелось в виду самый реалистичный, то надо было перед отрывом немного присесть, и после приземления тоже.

h1dd3n 24.11.2010 00:06

Ответ: Самый плавный прыжок.
 
Цитата:

Сообщение от Ganociy (Сообщение 169628)
какое? ты пример смотрел? если нет, то посмотри)

Прыжок не похож на прыжок если нет ускорения.

Morganolla 24.11.2010 00:11

Ответ: Самый плавный прыжок.
 
С ускорением там все в порядке.

Ganociy 24.11.2010 10:39

Ответ: Самый плавный прыжок.
 
Похож на прыжок как в контре-похож...)

SBJoker 24.11.2010 12:08

Ответ: Самый плавный прыжок.
 
Я вот вижу в коде ускорение, а вы?

Venom2 25.11.2010 15:44

Ответ: Самый плавный прыжок.
 
Ganociy
Учти еще что надо определять коллизию только с поверхностями небольшого наклона (иначе прижавшись к стене можно улететь вверх), после этого с помощью CollisionNX\NY\NZ брать вектор нормали и по нему уже прыгать.
Для определения наклона можно тот же вектор нормали использовать, умножив его и вектор вверх (0,1,0) скалярно, получишь косинус угла между ними, по нему и определишь.

burovalex 10.04.2012 19:49

Ответ: Самый плавный прыжок.
 
А также нет синхронизации, вот и прикинь если fps 60 и fps 30, у тебя прыжок затянется по времени в два раза

Код:

;пишется в самом начале цикла
frame=millisecs()
time=frame-xFrame
t=time/1000.0
;---------------

Gravity=Gravity-4*t

;-----пишется в самом конце цикла
xFrame=frame



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

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