I can't get my bullet-Enemy collision working. I'm trying to get it to delete the enemy and delete the bullet when they collide.
Graphics3D 1280,1024,32 AppTitle "Gun Shooter" Collisions 1,2,2,2 SetBuffer BackBuffer() Type BulletType Field mesh End Type Type EnemyType Field mesh End Type Global player = CreatePivot() PositionEntity player,0,1,1 EntityRadius player,.6 EntityType player,1 camera = CreateCamera( player ) CameraRange camera,.1,200 light = CreateLight() LightColor light,32,32,32 TurnEntity light,45,45,0 Sight = LoadImage("Sight.bmp") Global GunFire = LoadSound("gunfire.wav") Gun = LoadMesh("Weapons\SWATRifle.3ds",player) Global EnemyMesh = CreateCube() Global BulletMesh = LoadMesh("Weapons\Bullet.3ds") EntityType BulletMesh,3 HideEntity BulletMesh Levels = OpenFile("Levels.dat") ReadLine(Levels) leveloc$ = ReadLine$(Levels) Levelfile = OpenFile("Levels" + leveloc) LevelType$ = ReadLine$(Levelfile) If LevelType$ = "Terrain" Then Pos = FilePos(Levelfile) Level = LoadTerrain("Levels" + ReadLine(Levelfile)) SeekFile(Levelfile,pos) terrain = LoadImage("Levels" + ReadLine(Levelfile)) tex = LoadTexture("Levels" + ReadLine(LevelFile)) EntityTexture Level,tex ElseIf LevelType$ = "Maplet" Then Level = LoadMesh("Levels" + ReadLine(LevelFile)) Else RuntimeError "Invalid Level Type Code: L295" EndIf For i = 1 To 10 EnemyType.EnemyType = New EnemyType EnemyType\mesh = CopyMesh(EnemyMesh) EntityType EnemyType\mesh,4 Next ;CameraFogMode camera,1 ;CameraFogColor camera,255,255,255 ;CameraFogRange camera,1,10 If Level = 0 RuntimeError "File: 'L1Field.jpg' not found" If GunFire = 0 Then RuntimeError "File: '9mm.wav' not found" EndIf ScaleEntity Gun,0.9999,0.9999,0.9999 SoundVolume GunFire,1 MaskImage Sight,255,255,255 MidHandle Sight For EnemyType.EnemyType = Each EnemyType If LevelType$ = "Terrain" Then PositionEntity EnemyType\mesh,Rand(0,ImageWidth(terrain)),0,Rand(0,ImageHeight(terrain)) ElseIf LevelType$ = "Maplet PositionEntity EnemyType\mesh,Rand(0,MeshWidth(Level)),0,Rand(0,MeshHeight(Level)) EndIf Next FreeImage terrain LoadSkyBox("World") MoveEntity Gun,.1,-.1,0 EntityFX Level,1 EntityType Level,2 sp# = .05 ey# = EntityY(player) PositionEntity Gun,EntityX(player) + .3,EntityY(player) - 1,EntityZ(player) - 1 ;WireFrame True While Not KeyHit(1) yv# = EntityY(player) - ey ey = EntityY(player) If KeyHit(57) yv=.1 If sp# = .05 And KeyHit(42) Or KeyHit(54) Then sp# = 1 ElseIf sp# = 1 And KeyHit(42) Or KeyHit(54) Then sp# = .05 EndIf MoveEntity player,0,yv-.005,0 If KeyDown(30) TurnEntity camera,-2,0,0 TurnEntity Gun,-2,0,0 EndIf If KeyDown(44) TurnEntity camera,+2,0,0 TurnEntity Gun,+2,0,0 EndIf If KeyDown(203) TurnEntity player,0,2,0 If KeyDown(205) TurnEntity player,0,-2,0 If KeyDown(200) MoveEntity player,0,0,sp If KeyDown(208) MoveEntity player,0,0,-sp RotateEntity Gun,EntityPitch(player),0,0 If KeyHit(156) PointEntity player,Gun EndIf If MouseDown(1) bulletType.BulletType = New BulletType bulletType\mesh = CopyMesh(bulletMesh) RotateEntity BulletType\mesh,EntityPitch(player,1),EntityYaw(player,1),EntityRoll(player,1) PlaySound GunFire PositionEntity BulletType\Mesh,EntityX(player) - .1,EntityY(player) - .134,EntityZ(player) - .8 EntityType BulletType\Mesh,3 EndIf TurnEntity player,0,-MouseXSpeed(),0 ;TurnEntity player,MouseYSpeed(),0,0 UpdateWorld RenderWorld Locate 0,0 ;Print TrisRendered() DrawImage Sight,GraphicsWidth() / 2,GraphicsHeight() / 2 For biter.BulletType = Each BulletType MoveEntity biter\mesh,0,0,1 If Abs(EntityX(biter\mesh,1)) > 1000 FreeEntity biter\mesh Delete biter ElseIf Abs(EntityY(biter\mesh,1)) > 1000 FreeEntity biter\mesh Delete biter ElseIf Abs(EntityZ(biter\mesh,1)) > 1000 FreeEntity biter\mesh Delete biter EndIf Next For EnemyType.EnemyType = Each EnemyType For biter.BulletType = Each BulletType If EntityCollided(biter\mesh,3) = EnemyType\mesh Then FreeEntity EnemyType\mesh FreeEntity Biter\mesh Delete EnemyType Delete biter EndIf Next Next Color 0,0,0 Locate 0,0 Print EntityDistance(player,Gun) Flip Wend FreeEntity Level FreeEntity Gun FreeEntity Camera FreeEntity Bullet FreeEntity player FreeEntity light FreeImage Sight FreeSound GunFire FreeTexture tex CloseFile Levels CloseFile Levelfile For bulletType.BulletType = Each BulletType FreeEntity bulletType\mesh Delete bulletType Next For EnemyType.EnemyType = Each EnemyType FreeEntity EnemyType\mesh Delete EnemyType Next End Function CreateTree(file$,width#,Height) tree = CreateMesh() surf1 = CreateSurface(tree) v0 = AddVertex(surf1,-1.0,-1.0,0,0,0) v1 = AddVertex(surf1,1.0,-1.0,0,1,0) v2 = AddVertex(surf1,1.0,1.0,0,1,0) v3 = AddVertex(surf1,-1.0,1.0,0,0,1) tri0 = AddTriangle(surf1,v0,v1,v2) tri1 = AddTriangle(surf1,v0,v2,v3) v4 = AddVertex(surf1,-1.0,0,-1.0,0,0) v5 = AddVertex(surf1,1.0,0,-1.0,1,0) v6 = AddVertex(surf1,1.0,0,1.0,1,1) v7 = AddVertex(surf1,-1.0,0,1.0,0,1) tri2 = AddTriangle(surf1,v4,v5,v6) tri3 = AddTriangle(surf1,v4,v6,v7) UpdateNormals tree tex = LoadBrush(file$,4) ; using masked flag (4) PaintMesh tree,tex EntityFX tree,16 ; make visible from both sides Return tree End Function Function LoadSkyBox( file$ ) m=CreateMesh() ;front face b=CreateBrush(0,0,0) s=CreateSurface( m,b ) AddVertex s,-1,+1,-1,0,0:AddVertex s,+1,+1,-1,1,0 AddVertex s,+1,-1,-1,1,1:AddVertex s,-1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;right face b=CreateBrush(0,0,0) s=CreateSurface( m,b ) AddVertex s,+1,+1,-1,0,0:AddVertex s,+1,+1,+1,1,0 AddVertex s,+1,-1,+1,1,1:AddVertex s,+1,-1,-1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;back face b=CreateBrush(0,0,0) s=CreateSurface( m,b ) AddVertex s,+1,+1,+1,0,0:AddVertex s,-1,+1,+1,1,0 AddVertex s,-1,-1,+1,1,1:AddVertex s,+1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;left face b=CreateBrush(0,0,0) s=CreateSurface( m,b ) AddVertex s,-1,+1,+1,0,0:AddVertex s,-1,+1,-1,1,0 AddVertex s,-1,-1,-1,1,1:AddVertex s,-1,-1,+1,0,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;top face b=CreateBrush(0,0,0) s=CreateSurface( m,b ) AddVertex s,-1,+1,+1,0,1:AddVertex s,+1,+1,+1,0,0 AddVertex s,+1,+1,-1,1,0:AddVertex s,-1,+1,-1,1,1 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ;bottom face b=CreateBrush(0,0,0) s=CreateSurface( m,b ) AddVertex s,-1,-1,-1,1,0:AddVertex s,+1,-1,-1,1,1 AddVertex s,+1,-1,+1,0,1:AddVertex s,-1,-1,+1,0,0 AddTriangle s,0,1,2:AddTriangle s,0,2,3 FreeBrush b ScaleMesh m,100,100,100 FlipMesh m EntityFX m,1 Return m End Function Function Mid3dHandle(mesh) ux#=-100000 uy#=-100000 uz#=-100000 lx#=100000 ly#=100000 lz#=100000 cs=CountSurfaces(mesh) For s=1 To cs surf=GetSurface(mesh,s) cv=CountVertices(surf)-1 For v=0 To cv vx#=VertexX#(surf,v) vy#=VertexY#(surf,v) vz#=VertexZ#(surf,v) If vx#<lx# Then lx#=vx# If vx#>ux# Then ux#=vx# If vy#<ly# Then ly#=vy# If vy#>uy# Then uy#=vy# If vz#<lz# Then lz#=vz# If vz#>uz# Then uz#=vz# Next Next ax#=(ux#+lx#)/2 ay#=(uy#+ly#)/2 az#=(uz#+lz#)/2 PositionMesh mesh,-ax#,-ay#,-az# End Function