Entitycollided

Blitz3D Forums/Blitz3D Beginners Area/Entitycollided

slenkar(Posted 2003) [#1]
I have set all of the bullets as collision type 3
some of the enemy ships are type 2
some are type 1

when I do a for-next loop to cycle through the bullets how do I use entitycollided to find out which enemy ship was hit?

Or when I cycle through the enemy ships how do I find out which ship was hit?

I tried using

For tr= 1 To 100
hit_ship= EntityCollided (bullets(tr),1)
If hit_ship<>0
HideEntity hit_ship
EndIf

next


but hit_ship is always zero no matter how many times I see the bullet collide


slenkar(Posted 2003) [#2]
The only way I can identify which enemy ship has been hit is by giving each INDIVIDUAL enemy a collision type which slows the game down to 1 FPS

CAN ANYONE HELP?


eBusiness(Posted 2003) [#3]
Your code will only check bullet 100, as hit_ship is owerwritten before you check if it's <>0. Move the next command down below endif.


slenkar(Posted 2003) [#4]
I tried that and it still doesnt work, check my code again


eBusiness(Posted 2003) [#5]
Eh, you did remember making a collisions statement?


Binary_Moon(Posted 2003) [#6]
for i=1 to countcollisions(bullet)
hideentity collisionentity(bullet,i)
next


slenkar(Posted 2003) [#7]
k=0
For p.blue_ship=Each blue_ship
k=k+1
For t = 1 To CountCollisions(redbullets(k))
HideEntity CollisionEntity (redbullets(k),t)

Next
next

I tried this but it doesnt work.

Definetly set the collisions because the bullets stop when they hit the enemies


Binary_Moon(Posted 2003) [#8]
Thats not going to work though is it?

how many bullets do you have? If there is only one ship then you are only checking 1 bullet, even when there are 100 of them.

Read your code again.

You set k to 0. No problem. You then loop through all the ships (not bullets) increasing k each time - you then check the amount of collisions that bullet k has. The problem is you're only going to loop through as many bullets as you have ships. If you have 3 ships and 100 bullets you will only check the firt 3 bullets. Have 100 ships and 3 bullets and theres a good chance you will get an error of some sort.

you need

for b=1 to MaxBullets
   for i=1 to countcollisions(bullet(b)) 
      hideentity collisionentity(bullet(b),i) 
   next 
next


Forget about looping through the ships. That doesn't matter.


slenkar(Posted 2003) [#9]
thanks it works now