Показать сообщение отдельно
Старый 10.01.2011, 06:49   #3
Venom2
 
Сообщений: n/a
Ответ: Метод попадания пуль

Сообщение от Halk-DS Посмотреть сообщение
Главний вопрос, кто может поделится своим опытом и рассказать о самом приемлимом методе, по какому вычисляется попала ли пуля в нужную нам цель?
CameraPick для первого лица, LinePick для других. Если нужна баллистика, то обычная проверка на столкновение - EntityCollided

Сообщение от Halk-DS Посмотреть сообщение
метод колизии пули с игроком в некоторых случаях просто безнадежен ибо пуля просто может протлитеть сквозь персонажа и даже его незаметить.
Нет, коллизия всегда сработает независимо от размера и скорости пули, там уже применяется метод описаный HolyDel выше.
Для подтверждения:
Graphics3D(800, 600, 32, 2)
SetBuffer(BackBuffer())

; игрок [0.5, 1.85, 0.5] метра
Local Player% = CreateCube()
ScaleEntity(Player, 0.5, 1.85, 0.5)
EntityType(Player, 1)

; пуля 2 см радиус, отдалена от игрока на 10 метров
Local Bullet% = CreateSphere(3)
ScaleEntity(Bullet, 0.002, 0.002, 0.002)
PositionEntity(Bullet, -10.0, 0.0, 0.0)
EntityRadius(Bullet, 0.002, 0.002)
EntityType(Bullet, 2)

Local Camera% = CreateCamera()
PositionEntity(Camera, 0.0, 0.0, -10.0)

Collisions(2, 1, 2, 1)

Repeat
	
	If EntityCollided(Bullet, 1) Then
		EntityColor(Player, 255, 0, 0)
	Else
		; скорость движения на игрока 1000 м\с (60 - кадров в сек)
		TranslateEntity(Bullet, 1000.0 / 60, 0, 0)
	End If
	
	UpdateWorld()
	RenderWorld()
	Flip()
Until KeyDown(1)
End
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Hulk-DS (10.01.2011)