Graphics 800,600
SeedRnd MilliSecs()
AppTitle "Survive!!!"



gfxPlayerbild 	= LoadImage("Schiff.bmp")
gfxSchussbild 	= LoadImage("Schuss.bmp")
gfxGegner1bild	= LoadImage("Gegner1.bmp")

Playerx# = 200
Playery# = 200
Playerspeed# = 3
Playerwinkel = 10         ; Nur 10-er
Schussspeed = 5


Dim arSchuss#(20,6) 
Dim gfxPlayer(360)
Dim gfxSchuss(360)
Dim gfxGegner1(360)
Dim arGegner1#(20,6)

MidHandle gfxPlayerbild 

For Winkel = 0 To 360
 gfxPlayer(Winkel) = CopyImage(gfxPlayerbild)
 RotateImage gfxplayer(Winkel),Winkel 
Next
Line Rnd(800),Rnd(600),Rand(800),Rand(600)
MidHandle gfxSchussbild 

For Winkel = 0 To 360
 gfxSchuss(Winkel) = CopyImage(gfxSchussbild)
 RotateImage gfxSchuss(Winkel),Winkel 
Next
Line Rnd(800),Rnd(600),Rand(800),Rand(600)
MidHandle gfxGegner1bild 

For Winkel = 0 To 360
 gfxGegner1(Winkel) = CopyImage(gfxGegner1bild)
 RotateImage gfxGegner1(Winkel),Winkel 
Next
Line Rnd(800),Rnd(600),Rand(800),Rand(600)

Dim arCos#(360)
For i = 0 To 360
 arCos(i) = Cos(i)
Next 
Line Rnd(800),Rnd(600),Rand(800),Rand(600)

Dim arSin#(360)
For i = 0 To 360
 arSin(i) = Sin(i)
Next 
Line Rnd(800),Rnd(600),Rand(800),Rand(600)





Repeat 
SetBuffer BackBuffer() 








Gosub GoSteuerung 
Gosub GoSchuss
Gosub Gegner





Flip
Repeat Until MilliSecs() Mod 30 = 0 
Cls

Forever

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



.GoSteuerung

If KeyDown(205) Then 
 Playerwinkel = Playerwinkel + 3
 If Playerwinkel > 360 Then Playerwinkel = 0 
EndIf 
If KeyDown(203) Then
 Playerwinkel = Playerwinkel - 3
 If Playerwinkel < 0 Then Playerwinkel = 360 
EndIf

If KeyDown(200) Then  
 Playerx = Playerx + arCos(Playerwinkel) *Playerspeed
 Playery = Playery + arSin(Playerwinkel) *Playerspeed
EndIf

If KeyDown(208) Then 
 Playerx = Playerx - arCos(Playerwinkel) *Playerspeed/2
 Playery = Playery - arSin(Playerwinkel) *Playerspeed/2
EndIf

DrawImage gfxPlayer(Playerwinkel),Playerx,Playery

Return 




.GoSchuss

If KeyHit(57) Then 
 Schusscnt = Schusscnt + 1
 If Schusscnt = 20 Then Schusscnt = 1
 arSchuss(Schusscnt,0) = 1
 arSchuss(Schusscnt,1) = Playerx + arCos(Playerwinkel) * 10
 arSchuss(Schusscnt,2) = Playery + arSin(Playerwinkel) * 10
 arSchuss(Schusscnt,3) = arCos(Playerwinkel)
 arSchuss(Schusscnt,4) = arSin(Playerwinkel)
 arSchuss(Schusscnt,5) = Schussspeed
 arSchuss(Schusscnt,6) = Playerwinkel

EndIf 


For i = 1 To 20
 If arSchuss(i,0) = 1 Then 
  DrawImage gfxSchuss(arSchuss(i,6)), arSchuss(i,1), arSchuss(i,2)
  arSchuss(i,1) = arSchuss(i,1) + arSchuss(i,3) * arSchuss(i,5)
  arSchuss(i,2) = arSchuss(i,2) + arSchuss(i,4) * arSchuss(i,5)
 EndIf
Next


Return




.Gegner


If KeyHit(15) Then 
 Gegner1cnt = Gegner1cnt +  1
 If Gegner1cnt = 20 Then Gegner1cnt = 1
 arGegner1(Gegner1cnt,0) = 1
 arGegner1(Gegner1cnt,1) = Rnd(800)
 arGegner1(Gegner1cnt,2) = Rnd(600)
 arGegner1(Gegner1cnt,3) = 1
 arGegner1(Gegner1cnt,4) = 1
 arGegner1(Gegner1cnt,5) = Rand(360)
Return







Return


Function Sichtfeld(x,y,xrichtung#,yrichtung#,objektx,objekty,objektbreite,objekthohe,Entfernung)

xplot# = x
yPlot# = y


Repeat

xplot = xplot + xrichtung
yplot = yplot + yrichtung
cnt = cnt + 1

If RectsOverlap(xplot,yplot,1,1,objektx,objekty,objektbreite,objekthohe) Then Return 1  



Plot xplot,yplot
Rect objektx,objekty,objektbreite,objekthohe



Until cnt = Entfernung  
End Function 
































