Показать сообщение отдельно
Старый 29.08.2009, 18:18   #3
ELIAS
Знающий
 
Аватар для ELIAS
 
Регистрация: 31.08.2008
Адрес: Arrakis
Сообщений: 234
Написано 6 полезных сообщений
(для 6 пользователей)
Ответ: EntityCollided, при движущихся навстречу друг другу объектах

Не получилось ничего(((
Вот семпл-код

Graphics3D 800, 600, 16, 2

lit=CreateLight()

cam=CreateCamera()


Collisions 1,2,2,3

player=CreateSphere() : ScaleMesh player, 50,50,50
EntityRadius player, 50 : EntityType player, 1

enemy=CreateCube() : ScaleMesh enemy, 50,50,50
EntityType player, 2
MoveEntity enemy, 0,0, 300

PositionEntity cam, 0,700,00
PointEntity cam, player




Repeat
	
	If KeyDown(200) Then MoveEntity player,0,0,1
	
	If KeyDown(208) Then MoveEntity enemy,0,0,-1
	
	
	
	UpdateWorld
	RenderWorld
	
	
	If EntityCollided(player,2)>0 Then Text 20,20, "Игрок сколлизился с врагом!"
	If EntityCollided(enemy,1)>0 Then Text 20,40, "Враг сколлизился с игрком!"
	
	Flip 60
	
Until KeyHit(1)

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

существует три основных ситуации:
1) враг стоит, игрок движется на него.
2) враг движется на игрока, игрок стоит.
3) враг и игрок движутся навстречу друг другу.

Ну и надо чтобы в любом из этих случаев безошибочно определялся момент когда игрок и враг сколлизились. В дангом семпле нужно чтобы высвечивались соотвествующие надписи.
В этом семпле, странно, вообще чего то не получилось...((( А в игре у меня коллизии определяются в 1 и 3 случаях, а вот во 2, если игрок стоит - то враг проходит сквозь игрока - и ничего((


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

Заранее спасибо!
(Offline)
 
Ответить с цитированием