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


  • Страница 1 из 1
  • 1
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Проблема со столкновениями
Проблема со столкновениями
TypeДата: Воскресенье, 04.12.2011, 20:19 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
Доброго времени суток!
необходимо реализовать: по кнопке начать непрерывное движениедо тех пор, пока не столкнешься с объектом, далее остановка и дальнейшее аналогичное движение в другом направлении.
Вопрос: как реализовать проверку на наличие коллизии?
wacko
кое-что набросала:
Graphics3D 640,480
cam=CreateCamera()

spher=CreateSphere()
PositionEntity spher,5,0,5
EntityType spher,1

Cube=CreateCube()
PositionEntity Cube,-2,0,5
EntityType Cube,2

While Not KeyHit(1)
Collisions 1,2,2,1
MoveEntity spher,-0.05,0,0

UpdateWorld
RenderWorld
Flip
Wend
End

но это ерунда, т.к. оно движется пока клавиша не нажмется или с кубом не столкнется, а вот реализовать проверку на столкновения не получается wacko


Сообщение отредактировал Type - Воскресенье, 04.12.2011, 20:34
 
NubДата: Воскресенье, 04.12.2011, 23:05 | Сообщение # 2
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 0
Статус: Offline
Вот код:
Graphics3D 640,480
Global dvig = -0.05 ;создаём переменную в которой скорость движения
cam=CreateCamera()
spher=CreateSphere()
PositionEntity spher,5,0,5
EntityType spher,1
Cube=CreateCube()
PositionEntity Cube,-2,0,5
EntityType Cube,2
Collisions 1,2,2,1
While Not KeyHit(1)
If EntityCollided (spher,2) dvig=0.05
MoveEntity spher,dvig,0,0
UpdateWorld
RenderWorld
Flip
Wend
End

Но я его не доделал.В дебаггере выдаёт значение переменной dvig=0 не знаю почему.Завтра разберусь почему.


Лучшее - враг хорошего. Сделал ты игру, решил улучшить, а потом до ночи сидишь и думаешь, что же ты такого сделал.
 
MishanayCoolДата: Понедельник, 05.12.2011, 08:26 | Сообщение # 3
разработчик
Группа: Пользователи
Сообщений: 226
Награды: 11
Репутация: 20
Статус: Offline
Потому что переменная dvig у тебя объявлена как int, а надо как float. Вот так - dvig#

MiniDemo3D - Blitz3D
 
NubДата: Понедельник, 05.12.2011, 15:50 | Сообщение # 4
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 0
Статус: Offline
спасибо а то я чёто ступил smile

Добавлено (05.12.2011, 15:50)
---------------------------------------------
Да,на случай если ты не поняла.Команда EntityCollided (spher,2) - проверка на коллизию предмета (spher) с типом (2) smile


Лучшее - враг хорошего. Сделал ты игру, решил улучшить, а потом до ночи сидишь и думаешь, что же ты такого сделал.
 
TypeДата: Понедельник, 05.12.2011, 22:32 | Сообщение # 5
ламер
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
да, спасибо,я разобралась
 
NubДата: Вторник, 06.12.2011, 08:51 | Сообщение # 6
ламер
Группа: Пользователи
Сообщений: 37
Награды: 0
Репутация: 0
Статус: Offline
Незачто

Лучшее - враг хорошего. Сделал ты игру, решил улучшить, а потом до ночи сидишь и думаешь, что же ты такого сделал.
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Проблема со столкновениями
  • Страница 1 из 1
  • 1
Поиск: