Metamophic,
It may be best (and faster) if you did collision by math.
You know where the objects are, you know how big they are, you know the location of the "laser", so check to see if the location of the "laser" is within the border of your objects.
`*** did round hit a target ***
for x=1 to TotalChar
ty#=object position y(100+x)+2.0
` tx#=newxvalue(object position x(100+x),cfdr#(x),sizez#+(sizez#/4))
` tz#=newzvalue(object position z(100+x),cfdr#(x),sizez#+(sizez#/4))
tx#=newxvalue(object position x(100+x),cfdr#(x),sizez#)
tz#=newzvalue(object position z(100+x),cfdr#(x),sizez#)
tx1#=newXvalue(tx#,wrapvalue(cfdr#(x)+90),sizex#)
tz1#=newZvalue(tz#,wrapvalue(cfdr#(x)+90),sizex#)
tx2#=newXvalue(tx#,wrapvalue(cfdr#(x)-90),sizex#)
tz2#=newZvalue(tz#,wrapvalue(cfdr#(x)-90),sizex#)
tx#=newxvalue(object position x(100+x),wrapvalue(cfdr#(x)+180),sizez#)
tz#=newzvalue(object position z(100+x),wrapvalue(cfdr#(x)+180),sizez#)
tx3#=newXvalue(tx#,wrapvalue(cfdr#(x)+90),sizex#)
tz3#=newZvalue(tz#,wrapvalue(cfdr#(x)+90),sizex#)
tx4#=newXvalue(tx#,wrapvalue(cfdr#(x)-90),sizex#)
tz4#=newZvalue(tz#,wrapvalue(cfdr#(x)-90),sizex#)
if rndX# > tx1# and rndX# < tx2#
if rndZ# > tz1# or rndZ# > tz2#
if rndZ# < tz3# or rndZ# < tz4#
if rndY# < ty# then TrgtHit = x:intStop=2
endif
endif
endif
if rndX# > tx2# and rndX# < tx4#
if rndZ# > tz2# or rndZ# > tz4#
if rndZ# < tz1# or rndZ# < tz3#
if rndY# < ty# then TrgtHit = x:intStop=2
endif
endif
endif
if rndX# > tx4# and rndX# < tx3#
if rndZ# > tz4# or rndZ# > tz3#
if rndZ# < tz2# or rndZ# < tz1#
if rndY# < ty# then TrgtHit = x:intStop=2
endif
endif
endif
if rndX# > tx3# and rndX# < tx1#
if rndZ# > tz3# or rndZ# > tz1#
if rndZ# < tz4# or rndZ# < tz2#
if rndY# < ty# then TrgtHit = x:intStop=2
endif
endif
endif
next x
There may be a better (and faster) way then what I am using but it works very well. If you have trouble make it out, let me know and I'll try to explain it better.
Good luck and I hope this helps.