forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   АнтиГравитация: Киев проблема с машиной (http://forum.boolean.name/showthread.php?t=5383)

sash13 20.12.2007 19:40

АнтиГравитация: Киев проблема с машиной
 
у меня машинка летает в 3д пространстве полностю изменяется полет по фсем плоскастям...Вобщем проблема такая...Когда она останавливается в воздухе, то и остается в висячем положении...Как сделать чтоб она вазращалась на землю...:wallbash: Проэкт самый что нинаесть: :crazy: :crazy: :crazy: :crazy: :crazy: :crazy: :crazy:

newman 20.12.2007 20:14

Re: АнтиГравитация: Киев проблема с машиной
 
TranslateEntity - тебе в помощ

sash13 20.12.2007 20:32

Re: АнтиГравитация: Киев проблема с машиной
 
тойсть
TranslateEntity car,0,1,0
или как???

newman 20.12.2007 20:37

Re: АнтиГравитация: Киев проблема с машиной
 
Цитата:

тойсть
TranslateEntity car,0,1,0
или как???
Да именно так.Или у тебя так не работает?

Diplomat 20.12.2007 21:22

Re: АнтиГравитация: Киев проблема с машиной
 
Цитата:

Да именно так.Или у тебя так не работает?
Угу, конечно. Так-то у него точно не заработает... Если только земля у него не вверху. Причём, судя по шагу сдвига, далеко-далеко вверху.

sash13 20.12.2007 23:20

Re: АнтиГравитация: Киев проблема с машиной
 
Дермова палучилось........
Скрытый текст (вы должны войти под своим логином или зарегистрироваться и иметь 5 сообщение(ий)):
У вас нет прав, чтобы видеть скрытый текст, содержащийся здесь.

newman 21.12.2007 09:48

Re: АнтиГравитация: Киев проблема с машиной
 
А где у тебя проверка на столкновения?И попробуй TranslateEntity до команды UpdateWorld объявить.

ABTOMAT 21.12.2007 11:46

Re: АнтиГравитация: Киев проблема с машиной
 
Я вот вообще не понимаю людей, кто просто кидает код...
А кто егозапустить-то сможет, чтобы посмотреть, что именно
Цитата:

Дермова палучилось........
?
Вряд ли кто-то в первого взгляда на код сообразит, в чём дело, да и читать его вряд ли станет без наглядного примера.
Может, ты хотя бы ресурсы выложишь в архивчике, искать и переименовывать свои вряд ли кто-то станет только чтобы посмотреть что там такое.


Цитата:

чтоб она возвращалась на землю?
[blitz]TranslateEntity osn,0,0.4,0[/blitz]
Во-первых, с параметром 0.4 машина будет перемещаться не вниз (как обычно бывает в условиях земной гравитации). Чтобы она летела вниз, нужно отрицательное значение.
Во-вторых, почему после RenderWorld'а поставил? Ладно, щас ещё можно (хотя всё равно непорядок), а когда будешь использовать стабилизацию дельтатаймингом, трястись будет.
[blitz]UpdateWorld[/blitz]
В-третьих, зачем тебе сейчас эта команда?
Она обновляет коллизии и анимацию, которых у тебя ещё нет.
Хотя коллизия с землёй не помешала бы - машина будет падать сквозь землю. Есть два решения этой проблемы:
1. Создать террайн и/или загрузить меш уровня и коллизировать машину с ним.
2. В случае, если земля плоская (Plane) то тут лучше сделать условие:
Если координата игрек машины минус радиус > 0 то двигаем вниз машину иначе (т.е. машина уже упёрлась в землю) то ничего не двигать

Если осилил то, что я тут понаписал, молодец :-)
Исправляй!

HolyDel 21.12.2007 11:51

Re: АнтиГравитация: Киев проблема с машиной
 
ABTOMAT, молодец!
одна маленькая поправочка
Цитата:

2. В случае, если земля плоская (Plane) то тут лучше сделать условие:
Если координата игрек машины минус полоыина высоты машины > 0 то двигаем вниз машину иначе (т.е. машина уже упёрлась в землю) то присвоить координате Y машины равную половине высоты машины
ето при условии что машина не шарообразная, и ее центр находится в центре.

H@NON 21.12.2007 12:10

Re: АнтиГравитация: Киев проблема с машиной
 
смотри на коментарии, где помечено "Edit".

Код:

Graphics3D 640,480,32,0
SetBuffer BackBuffer()
;---------edit---------------------------
Const pl_col = 1, Terr_col = 2
;----------------------------------------
speed#=0
maxSpeed#=0.8
turnCam = False
;Свет
AmbientLight 80,80,80
lit=CreateLight()
PositionEntity lit,70,70,0
TurnEntity lit,20,0,0
;Камера
p=CreatePivot()
PositionEntity p,0,0.4,0
cam=CreateCamera(p)
PositionEntity cam,0,0.5,-5
TurnEntity cam,0,0,0
TurnEntity p,10,0,0
;Пол(основание)
ground=CreatePlane()
tex = CreateTexture(128, 128)
SetBuffer TextureBuffer(tex)

For n = 1 To 50
    Color Rand(0, 255), Rand(0, 255), Rand(0, 255)
    Line Rnd(0, 128), Rnd(0, 128), Rnd(0, 128), Rnd(0, 128)
Next

SetBuffer BackBuffer()
ScaleTexture tex, 10, 10
EntityTexture ground, tex, 0, 1

EntityType ground, Terr_col
;groundTex = LoadTexture("logo_200.jpg")
;EntityTexture ground,groundTex
osn = CreateCube()
PositionEntity osn,0,2,0
EntityType osn, pl_col

Collisions pl_col, Terr_col, 2, 3
Repeat
;---------edit--------------------------
Gravity#=0
;----------------------------------------
speedMX=MouseXSpeed();
speedMY=MouseYSpeed();
MoveMouse 320,240
If KeyDown (31) And speed# < maxSpeed# Then
speed = speed+0.01
Else If KeyDown (17) And speed# > -maxSpeed# Then
speed = speed-0.01
;----------edit--------------------------
Else
Gravity# = 0.4
;----------------------------------------
EndIf
If KeyDown (30)
TurnEntity osn,0,1,0
Else If KeyDown (32)
TurnEntity osn,0,-1,0
EndIf
If turnCam = False
TurnEntity osn,speedMY*0.2,0,0
TurnEntity osn,0,-speedMX*0.1,0
EndIf
MoveEntity osn,0,0,speed
;Поворот
If MouseDown(2)
turnCam = True
TurnEntity p,-speedMY*0.1,-speedMX*0.1,0 ; поворот камеры мышкой аля FPS
TurnEntity p,0,0,-EntityRoll(p) ; чтобы не переворачивалась камера
Else
turnCam = False
EndIf
speed=speed*0.99
;----------edit--------------------------
TranslateEntity osn,0,-gravity,0
PositionEntity p,EntityX(osn,True ),EntityY(osn,True ),EntityZ(osn,True ),True
;----------------------------------------

;Основное
UpdateWorld
RenderWorld

Text 0,0, speedMX
Flip
Until KeyHit(1)


ABTOMAT 21.12.2007 12:11

Re: АнтиГравитация: Киев проблема с машиной
 
HolyDel, я не особо понял почему половина радиуса?

Где тут половина?

HolyDel 21.12.2007 12:15

Re: АнтиГравитация: Киев проблема с машиной
 
Вложений: 2
про половину радиуса (как и про сам радиус), я молчу
см. иллюстрацию.

ABTOMAT 21.12.2007 14:07

Re: АнтиГравитация: Киев проблема с машиной
 
половина высоты машины
ай, извини, напутал... :pardon:
Просто я сначала имел ввиду радиус как у меня на рисунке.

HolyDel 21.12.2007 14:21

Re: АнтиГравитация: Киев проблема с машиной
 
да я понял.
просто с нешарообразными машинами - ето будет работать уже не идеально.

ABTOMAT 21.12.2007 16:06

Re: АнтиГравитация: Киев проблема с машиной
 
Для нешарообразных машин рекомендуется использовать PhysX


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

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