Возникла проблема с этими командами.
Здесь код, с помощью которого я делаю некое подобие декалей (взял из одного примера):
nx#=0
ny#=0
nz#=0
num#=CountCollisions(bul\model)
For i=1 To num
nx=nx+CollisionNX(bul\model,i)
ny=ny+CollisionNY(bul\model,i)
nz=nz+CollisionNZ(bul\model,i)
x#=x#+CollisionX(bul\model,i)
y#=y#+CollisionY(bul\model,i)
z#=z#+CollisionZ(bul\model,i)
nx=nx/num
ny=ny/num
nz=nz/num
x=x/num
y=y/num
z=z/num
Здесь вычисляется угол столкновения между двух объектов. Когда пуля bul\model сталкивается с уровнем, на месте столкновения появляется спрайт:
dec.decal = New decal
dec\sprite = CopyEntity (scorchsprite)
dec\life# = 0.8
RotateSprite dec\sprite,Rand(360)
temp#=0.3+Rnd(0.6)
ScaleSprite dec\sprite,temp#,temp#
PositionEntity dec\sprite,x,y,z
AlignToVector dec\sprite,-nx,-ny,-nz,0
MoveEntity dec\sprite,0,0,-0.2
DebugLog "Decal created at " +x+""+y+""+z
При одиночном столкновении никаких проблем нет. Но когда пули создаются не по одиночке, а по несколько (дробь из ружья), то при
одновременном столкновении спрайты создаются на расстоянии. То есть, если одновременно столкнулись три пули, то первый спрайт будет на месте столкновения, второй через некоторое расстояние, также как и третий.
Есть ли какя-либо возможность отсортировать столкновения посредствами блитцевский команд коллизий?