forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Help! Проблемы с collisions (http://forum.boolean.name/showthread.php?t=12861)

Дмитрий 08.07.2010 18:03

Help! Проблемы с collisions
 
Посмотрел на одном сайте учебник с такой игрой,
решил проверить себя и сделал все по-своему,
но кубик не останавливается при столкновении со сферами.Вот код программы:
Код:

Graphics3D 1024,768
SetBuffer BackBuffer()
Global cub=CreateCube()
Const cubb=1
EntityType cub,cubb
EntityRadius cub,5
Global x#,y#,z#
Global c_bot=Rand(3,7)
PositionEntity cub,0,2,6
ScaleEntity cub,0.2,2,0.5
cam=CreateCamera(cub)
PositionEntity cam,0,3,-10
Type stolb
Field entity
End Type
Function create_world()
plan=CreatePlane()
PositionEntity plan,0,-2,0
EntityColor plan,0,0,255
light=CreateLight()
End Function
Function update_cub()
v#=0.3
If KeyDown(200) Then MoveEntity cub,0,0,v#
If KeyDown(208) Then MoveEntity cub,0,0,-v#
If KeyDown(203) Then TurnEntity cub,0,1,0
If KeyDown(205) Then TurnEntity cub,0,-1,0
End Function
Function create_stolb()
For i=1 To 6
s.stolb=New stolb
s\entity=CreateSphere()
PositionEntity s\entity,Rand(-10,10),0,Rand(6,10)
ScaleEntity s\entity,0.2,9,0.3
EntityType s\entity,3
Next
Return True
End Function
create_world()
create_stolb()
Collisions(cubb,3,2,3)
While Not KeyHit(1)=1
update_cub()
RenderWorld
Flip
Wend
End


Maxim1441 08.07.2010 18:11

Ответ: Help! Проблемы с collisions
 
Перед RenderWorld() поставь UpdateWorld () - она как раз и просчитывает столкновения, анимацию и пр. И EntityRadius cub поставь не 5, а 1, у тебя ведь куб размером как раз таким.

Дмитрий 08.07.2010 20:41

Ответ: Help! Проблемы с collisions
 
спасибо

Maxim1441 08.07.2010 22:55

Ответ: Help! Проблемы с collisions
 
Вместо "спасибо" лучше щелкни по кнопке "Полезно!" под мои постом.:)


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

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