Радиус объекта
| |
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 - длинна линии
Мы ищем предмет цели для того чтобы найти результаты его следствия
|
|
| |
|