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=8207)

Nex 23.04.2009 18:47

Проблема с коллизией
 
Привет всем!
Я в игре сделал, что бы можно было стрелять, но у меня не получается удалить "патрон" при столкновении с землей. Коллизию я поставил, в обновлении много разных способов перепробовал, но не удаляется и все. :mad:
PHP код:

Const SHOTT=2
Const TERRAIN=3
Collisions SHOTT
,TERRAIN,2,

Цитата:

pln=CreatePlane()
EntityTexture pln,tex1,0,0
EntityType pln,TERRAIN


Function update_shot()
For b.Bullet=Each Bullet
MoveEntity b\ent,0,0,3
b\time_out=b\time_out-1

If EntityCollided(b\ent,TERRAIN)<>0 Then
FreeEntity b\ent
Delete b
ElseIf b\time_out=0 Then
FreeEntity b\ent
Delete b
EndIf
Next
End Function

Function CreateShot()
b.Bullet=New Bullet
b\time_out=150
b\ent=CreatePivot(play)
EntityType b\ent,SHOTT
EntityParent b\ent,0
b\mesh=CopyEntity(bull_sprite,b\ent)
End Function

MiXaeL 23.04.2009 20:21

Ответ: Проблема с коллизией
 
Гхм, следует понимать, что такое пивот. Попробуй EntityRaduis b\ent,1
А вообще, я лично не вкурил зачем энтити в типе отдельно от меша держать?

Nex 24.04.2009 06:48

Ответ: Проблема с коллизией
 
Цитата:

Сообщение от Michael (Сообщение 103715)
Гхм, следует понимать, что такое пивот. Попробуй EntityRaduis b\ent,1
А вообще, я лично не вкурил зачем энтити в типе отдельно от меша держать?

Я делал стрельбу как в примере Castle. Сначало коллизия стояла на спрайте(меше), но такая же фигня была. Я смотрел как сделано во всех примерах что у меня есть и что я нашел, но все равно не работает. :''((

Dzirt 24.04.2009 12:07

Ответ: Проблема с коллизией
 
Цитата:

Сообщение от SkySream (Сообщение 103708)
Привет всем!
Я в игре сделал, что бы можно было стрелять, но у меня не получается удалить "патрон" при столкновении с землей.

Потому,что столкновение не срабатывает. Я знаю мож ты там че лишнего натворил в коде проверь внимательно,так с виду вроде все правильно.

Радиус пивоту назначать не обязательно,хотя попробывать следует..хотя колизия должна и без етого сработать.

Вот пример если поможет :

Код:

Graphics3D 800,600,32,2


Const shot=1
Const wall=2
Collisions shot,wall,2,1

;main cam
cam=CreateCamera()
MoveEntity cam,0,0,-20

;creates wall
plane=CreatePlane()
RotateEntity plane,-90,89,0
EntityType plane,wall
EntityColor plane,255,0,0

;makes pivot and cube for it
bul=CreatePivot()
bul_cube=CreateCube(bul)
EntityType bul,shot


;different
MoveEntity bul,10,0,0
AmbientLight 210,210,210

;main cikle
While Not KeyHit(1)
       
        ;bullet movement
        MoveEntity bul,-0.1,0,0
       
       
       
;if collided-free
        UpdateWorld
        RenderWorld
       
        If EntityCollided(bul,wall) FreeEntity bul

Flip
Wend
End


Nex 24.04.2009 16:54

Ответ: Проблема с коллизией
 
Спасибо. Но у меня произошло какое то колдунство. Я перезагрузил комп и все заработало, а так вообще никак не хотело. :wallbash:


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

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