Сообщение от 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