[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Радиус объекта (EntityBox)
Радиус объекта
VirusssДата: Пятница, 22.01.2010, 17:53 | Сообщение # 11
Подполковник
Группа: Пользователи
Сообщений: 412
Награды: 2
Репутация: 5
Статус: Offline
Quote (deejex)
А ты думал EntityBox это кубическая карта коллизий? Блиц не поддерживает poly2poly. только sphere2sphere и sphere2poly

MeshesIntersect (mesh_a,mesh_b ) разве не поли ту поли?
Quote (Gabriel)
у меня без костей, я делать боунса собрался. шар постоянно прыгает, мне надо сделать так, чтобы он и прыгал и двигался по нажатию клавиши куда надо.

А-А-А-А-А-А чеж ты сразу не сказал?Просто щарик двигаеш?Ты это собрался сделать? Или что значит "анимация на блице"?
Code
repeat
if cube\x=min then; min - предел точки отпрыга:)
repeat
moveEntity cube,0,0,1;двигаеш по z до придела.
if keyDown(...)=true MoveEntity cube,1,0,0;двигаеш по нажатию клавишы
Until cube\x=max
Endif

if cube\x=max then; max - предел высоты(допрыга)
repeat
moveEntity cube,0,0,-1;двигаеш по z до придела.
if keyDown(...)=true MoveEntity cube,1,0,0;двигаеш по нажатию клавишы
Until cube\x=min
Until keyHit(1)


Сообщение отредактировал Virusss - Пятница, 22.01.2010, 17:55
 
deejexДата: Пятница, 22.01.2010, 21:41 | Сообщение # 12
заядлый прогер
Группа: Пользователи
Сообщений: 522
Награды: 2
Репутация: 14
Статус: Offline
Quote (Virusss)
MeshesIntersect (mesh_a,mesh_b ) разве не поли ту поли?

это исключение. это совсем другой алгоритм - менее производительный




 
VirusssДата: Пятница, 22.01.2010, 21:44 | Сообщение # 13
Подполковник
Группа: Пользователи
Сообщений: 412
Награды: 2
Репутация: 5
Статус: Offline
Quote (deejex)
это исключение. это совсем другой алгоритм - менее производительный

ну это да, в хэлпе так и написано : "Это довольно медленная функция - не используйте ее без острой необходимости."
 
GabrielДата: Воскресенье, 24.01.2010, 15:11 | Сообщение # 14
ламер
Группа: Пользователи
Сообщений: 41
Награды: 0
Репутация: 0
Статус: Offline
Вирус, ты меня не понял.
вот анимация из хелпа прописанная на блитце
Graphics3D 640,480
camera=CreateCamera()
PositionEntity camera,0,12,-12
RotateEntity camera,35,0,0
light=CreateLight(2)
PositionEntity light,1000,1000,-1000
ground=CreatePlane(2)
EntityAlpha ground,0.5
EntityColor ground,0,0,255
mirror=CreateMirror()
ball=CreateSphere(16)
EntityShininess ball,1
EntityColor ball,255,0,0
bloat#=0 : flatten#=0 : ypos#=10
For frame=1 To 10
ypos = ypos - spd#
spd#=spd#+.2
PositionEntity ball,0,ypos,0
ScaleEntity ball,1+bloat,1+flatten,1+bloat
If frame>8
bloat=bloat+1.5
flatten=flatten-.25
Else
flatten=flatten+.05
EndIf
SetAnimKey ball,frame
Next
seq = AddAnimSeq(ball,frame-1)
Animate ball,2,0.15
While Not KeyHit(1)
UpdateWorld
RenderWorld
Flip
Wend
End

допустим используя этот код, как мне прописать движение вперёд? мне всёравно анимацией или так как ты писал выше, просто объясни. и тут ещё одна прабла, если я использую этот код, а потом пишу управление типа как ты писал, оно не работает.

Добавлено (24.01.2010, 15:11)
---------------------------------------------
и объясните мне пожалуйста как использовать команду Meshesintersect. заранее благодарен.
также, не хочется создавать новую тему, ещё один вопрос.
как мне сделать так чтобы стрелка на спидометре двигалась вокруг середины спидометра, а не своей оси?

 
VirusssДата: Воскресенье, 24.01.2010, 17:19 | Сообщение # 15
Подполковник
Группа: Пользователи
Сообщений: 412
Награды: 2
Репутация: 5
Статус: Offline
Quote (Gabriel)
и объясните мне пожалуйста как использовать команду Meshesintersect. заранее благодарен.

MeshesIntersect (mesh_a,mesh_b )
Параметрыmesh_a - указатель первого объекта типа mesh
mesh_b - указатель второго объекта типа mesh

ОписаниеВозвращает True, если указанные объекты пересекаются.

Это довольно медленная функция - не используйте ее без острой необходимости.

Это единственная в настоящее время команда в Blitz3D, которая проверяет столкновения по типу: полигон к полигону.

Пример; Пример MeshesIntersect
; -----------------------

Code
Graphics3D 640,480  
SetBuffer BackBuffer()  

camera=CreateCamera()  

light=CreateLight()  
RotateEntity light,90,0,0  

drum=LoadMesh("media/oil-drum/oildrum.3ds")  
PositionEntity drum,-20,0,100  

crate=LoadMesh("media/wood-crate/wcrate1.3ds")  
PositionEntity crate,20,0,100  

While Not KeyDown( 1 )  

TurnEntity drum,1,1,1  
TurnEntity crate,-1,-1,-1  

RenderWorld  

; Если пересекаются - выдать сообщение  
If MeshesIntersect(drum,crate)=True Then Text 0,0,"Meshes are intersecting!"  

Flip  

Wend  

End

Добавлено (24.01.2010, 17:19)
---------------------------------------------

Quote (Virusss)
допустим используя этот код, как мне прописать движение вперёд? мне всёравно анимацией или так как ты писал выше, просто объясни. и тут ещё одна прабла, если я использую этот код, а потом пишу управление типа как ты писал, оно не работает.

Да я написал не полностью код а токо в общем...ну это ладно, в коде их хэлпа сделано движение вниз-вверх засчет проигрывания анимации вниз вверх,
Нет проблем! Пользуясь ей как обычной анимацией анимируй ее в цикле:
repeat
if Animating ( entity )=false then Animate entity,2,0.15
if keydown([код клавишы])=true then MoveEntity entity,1,0,0
Until keyhit(1)

вот и все анимация будет проигрыватся и обьект тоже при нажатии будет двигаться, вроде должно работать - попробуй, если что не так - пиши.

 
GabrielДата: Воскресенье, 28.03.2010, 16:14 | Сообщение # 16
ламер
Группа: Пользователи
Сообщений: 41
Награды: 0
Репутация: 0
Статус: Offline
всёравно не пашит.(
 
ParisHiltonДата: Понедельник, 29.03.2010, 09:23 | Сообщение # 17
прогер
Группа: Пользователи
Сообщений: 197
Награды: 2
Репутация: 5
Статус: Offline
Quote

как мне сделать так чтобы стрелка на спидометре двигалась вокруг середины спидометра, а не своей оси?

Дальше пошла математика высшего порядка

Code

angle=30
xd=Sin(angle)*e
yd=Cos(angle)*e

Line 200,200,200+xd,200+yd

где
angle - угол поворота стрелки
e - длинна линии


Мы ищем предмет цели для того чтобы найти результаты его следствия
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Радиус объекта (EntityBox)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: