More Enemy??

Blitz3D Forums/Blitz3D Beginners Area/More Enemy??

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Thanks for taking the time to help me Joe. I no im been a pain lol

Im running in debug mode and as i run the program the screen pops up i can see 10 enemy in random places on screen the the error pops up straight away

 Graphics3D 800,600,16,2

;-Types-----------------------------------------------------

Type bullet
	Field x#,y#
	Field ang#,speed#
	Field img
	Field life#
End Type

Type player
	Field x#,y#
	Field ang#,speed#
	Field img
End Type

Type enemy
	Field enx#,eny#
	Field life
	Field img
End Type

Type blood
    Field x#,y#,dx#,dy# ;location and speed
	Field timer
	Field size#
	Field r,g,b
End Type

Global me.player=New player
;Global en.enemy=New enemy
Global b.bullet=New bullet
Global clickedx,clickedy

me\x=400
me\y=300

me\img=CreateImage(9,9)
SetBuffer ImageBuffer(me\img)
Color 100,255,100
Oval 0,0,8,8 ;player gfx
MidHandle me\img

For i=0 To 9
en.enemy=New enemy
en\enx=Rnd(0,800)
en\eny=Rnd(0,600)

en\img=CreateImage(9,9)
SetBuffer ImageBuffer(en\img)
Color 255,100,100
Oval 0,0,8,8 ;enemy gfx
MidHandle en\img

Next

mover# = 1

SetBuffer BackBuffer()
;-Main loop-------------------------------------------------

While Not KeyHit(1)
	
	Cls

	If MouseHit(2)
	
		clickedx=MouseX()
		clickedy=MouseY()
		me\ang=ATan2(clickedx-me\x,clickedy-me\y)
		me\speed=3

	EndIf
	
	If Sqr((me\x-clickedx)^2+(me\y-clickedy)^2)<3
   		me\speed=0
	EndIf

	If MouseHit(1) 
		
		b.bullet = New bullet ;Create bullet
		b\x = me\x+4 : b\y = me\y+2
		b\ang= ATan2(MouseX()-b\x,MouseY()-b\y)+Rnd(-3,6)
		b\speed=4
		b\life=40
				
	End If
	
	For b.bullet = Each bullet
		movebullet(b)
	Next
		
;Move blood
	For bl.blood = Each blood
       	bl\x = bl\x + bl\dx
    	bl\y = bl\y + bl\dy
    	bl\timer=bl\timer+1
    	If bl\timer>15 Then Delete bl ;15 frames until destroy
	Next

		me\y=me\y+(Cos(me\ang)*me\speed)
		me\x=me\x+(Sin(me\ang)*me\speed)

	DrawImage me\img,me\x,me\y ;draw player
	
	Color 150,150,150
	Oval MouseX(),MouseY(),4,4 ;mouse gfx

For en.enemy = Each enemy	

	DrawImage en\img,en\enx,en\eny

;Collision check	
		;Collision check	
		If Sqr((me\x-en\enx)^2+(me\y-en\eny)^2)<8
		me\speed=0
		If ImagesCollide (me\img, me\x, me\y,0, en\img, en\enx, en\eny,0)
		angle# = ATan2(me\y - en\eny,en\enx - me\x)
		en\enx = en\enx + (mover * (Cos (angle)))
		en\eny = en\eny + (mover * (Sin (angle)))
		Color 255,255,255
		Text 350,500," COLLISION "
		End If
		End If

Next

;On screen info
	Color 255,255,255
	Text 0,0,"LMB = Shoot / RMB = Move"

;Draw particles
	For bl.blood = Each blood
		Color 200,50,50
		Oval bl\x-bl\size/2,bl\y-bl\size/2,bl\size,bl\size
	Next


	Flip

	Wend

End

;-Functions-------------------------------------------------

Function MoveBullet(b.bullet)
		en.enemy=New enemy
		b\y=b\y+(Cos(b\ang)*b\speed)
		b\x=b\x+(Sin(b\ang)*b\speed)
		
		Color 200,200,100 		
		Rect b\x,b\y,2,2
		
		b\life=b\life-1

;Collision check	
		If Sqr((b\x-en\enx)^2+(b\y-en\eny)^2)<8
			Color 255,55,55
			Text 350,500," HIT "
			
			b\life=-1
			
			For i=1 To 5
			bl.blood = New blood
			bl\x = b\x
			bl\y = b\y
			bl\dx = Rnd(-2,2):bl\dy=Rnd(-2,2)
			bl\size = 2	
			
		Next

			
		End If
		
			
		If b\life<0 ;Then Delete b.bullet

			Delete b.bullet
		
		End If

End Function


Thanks
DESTROYER