Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- AppTitle "Undead - Die Zombies kommen!"
- Graphics 800,600,16,2
- SetBuffer BackBuffer()
- FPS = CreateTimer (60)
- SeedRnd MilliSecs()
- Local timer%=CreateTimer(60)
- Local player_X%=400
- Local player_Y%=300
- Local schuss_X#=0
- Local schuss_Y#=0
- Local schuss%=False
- Local shots%=0
- Local shotr%=0
- Local random#=0.0
- ;------------------------- MAgazin
- HidePointer()
- wand1 = LoadImage("gfx/wand1.png")
- stein2 = LoadImage("gfx/stein2.png")
- hit = LoadImage("gfx/hit.png")
- ziel = LoadImage("gfx/zielscheibe.png")
- health = LoadImage("gfx/gui/health.png")
- s_symbol = LoadImage("gfx/waffen/seconda_symbol.png")
- gui = LoadImage("gfx/gui/gui.png")
- schuss = LoadImage("gfx/schuss.png")
- Pointer = LoadImage ("gfx/gui/pointer.png")
- level = LoadImage ("gfx/spiel_hintergrund.png")
- shadow = LoadImage ("gfx/schatten.png")
- Const Filename$ = "gfx/imagestrip.png"
- If FileType( Filename$ ) = 1 Then ;Exestiert
- Local ImageStrip = LoadAnimImage( Filename$, 64, 64, 0, 72 )
- Else
- ImageStrip = CreateImage( 72*64, 64 )
- Image = LoadImage ("gfx/spieler.png")
- SetBuffer ImageBuffer( ImageStrip )
- For i = 0 To 71
- Local tmpImage = CopyImage( Image )
- HandleImage( tmpImage, 32, 32 )
- RotateImage( tmpImage, i*5 )
- DrawImage( tmpImage, 32+i*64, 32 )
- FreeImage( tmpImage )
- Next
- SaveImage( imageStrip, Filename$ )
- FreeImage( imageStrip )
- ImageStrip = LoadAnimImage( Filename$, 64, 64, 0, 72 )
- EndIf
- ;-----------------------------------------------------------------
- SetBuffer BackBuffer( )
- Local angle#, image_angle
- Type shot
- Field X#
- Field Y#
- Field angle#
- End Type
- Global s.shot
- Local Datei$, DateiHandle%, Name$
- Datei="config/uzi.txt"
- If FileExists(Datei$) Then
- DateiHandle=ReadFile(Datei)
- bulletspeed#=ReadLine(DateiHandle) ; schussgeschwindigkeit
- magazine=ReadLine(DateiHandle) ; maximal zu tragene magazine
- magazin=ReadLine(DateiHandle) ; anzahl schuss im magazin
- CloseFile DateiHandle
- EndIf
- Local spieler$, DateiHandle2%, Name2$
- spieler="config/spieler.txt"
- If FileExists(spieler) Then
- DateiHandle2=ReadFile(spieler)
- leben_spieler%=ReadLine(DateiHandle2) ; maximale Gesundheit
- walk_speed=ReadLine(DateiHandle2) ; lauf-geschwindigkeit
- CloseFile DateiHandle2
- EndIf
- Repeat ; --------------------------------------HAUPTSCHLEIFE-----------------------------------
- DrawImage level, 0,0
- DrawImage ziel, 100,100
- DrawImage stein2, 400,350
- If player_x>785 Then player_x=785
- If player_y>585 Then player_y=585
- If player_x<15 Then player_x=15
- If player_y<15 Then player_y=15
- ;---------------------------------------------------------------------------------------------------
- ; Bewegen & Steuern der Figur & Mauszeiger
- ;---------------------------------------------------------------------------------------------------
- If KeyDown(30) Then player_x=player_x-walk_speed
- If KeyDown(32) Then player_x=player_x+walk_speed
- If KeyDown(31) Then player_y=player_y+walk_speed
- If KeyDown(17) Then player_y=player_y-walk_speed
- If KeyDown(30) And ImageRectCollide (imagestrip ,player_x,player_y,0,stein,400,350,0) Then player_x=player_x+2
- If KeyDown(32) And ImageRectCollide (imagestrip ,player_x,player_y,0,stein,400,350,0) Then player_x=player_x-2
- If KeyDown(31) And ImageRectCollide (imagestrip ,player_x,player_y,0,stein,400,350,0) Then player_y=player_y-2
- If KeyDown(17) And ImageRectCollide (imagestrip ,player_x,player_y,0,stein,400,350,0) Then player_y=player_y+2
- angle# = (ATan2( MouseY( )-player_y, MouseX( )-player_x )+360) Mod 359.0 ;Winkel von der Mitte zur Maus
- image_angle = Floor(angle# / 5.0) ;Bild-Index errechnen (Floor -> Abrunden der Kommazahl)
- ;Bild malen mit dem errechnetem Index
- mx = MouseX()
- my = MouseY()
- DrawImage( ImageStrip, player_x, player_y, image_angle )
- HandleImage imagestrip ,28,28
- DrawImage pointer, mx,my
- HandleImage( pointer, 16, 16 )
- ;------------------------------------------------------------
- DrawImage gui, 0,0
- ;DrawImage health, 20,550
- Locate 10,10
- Print "WASD zum bewegen"
- Locate 10,30
- Print "[r] zum nachladen"
- Locate 10,50
- Print "Maus zum zielen und Schießen"
- Color 0, 0, 0 ;!!!!!!!
- Locate 665,575
- Print "Magazin: " + magazin + "/200" ;-------------------
- Locate 665,560
- Print "Magazine: " + magazine + "/3"
- Locate 665,540
- Print "Waffe: Uzi"
- Locate 10,80
- Print "Kugeln verschossen: " + shotr
- If MouseDown(1) Or MouseHit(2)
- If magazin = 0
- Locate 500,500
- Else
- magazin=magazin-1
- shots=shots+1
- shotr=shotr+1
- s.shot = New shot
- s\angle=ATan2(MouseY()-player_y,MouseX()-player_x) ;winkel spieler-maus
- s\X=player_x:s\Y=player_y
- EndIf
- EndIf
- If magazin = 0
- Locate 340,200
- Print "Nachladen! [r]"
- EndIf
- ;---- Nachladen
- If KeyHit(19)
- If magazine<1 ; wenn magazin kleiner als 1 - nicht nachladen, ansonsten
- Else
- If magazin>12 ; Wenn magazin voll, nicht nachladen ansonsten
- Else
- magazine=magazine-1 ; ein magazin abziehen
- magazin=200 ; kugeln einfüllen
- EndIf
- EndIf
- EndIf
- For s.shot = Each shot
- s\X=s\X+Cos(s\angle)*bulletspeed
- s\Y=s\Y+Sin(s\angle)*bulletspeed
- DrawImage Schuss ,s\X,s\Y
- ; If ImagesCollide (Schuss ,s\X,s\Y,0,ziel,100,100,0) Then Delete s.shot : shots=shots-1
- ;Text 200,200, "Kollision"
- If s\X>800 Or s\X<0 Or s\Y>600 Or s\Y<0 Or ImagesCollide (Schuss ,s\X,s\Y,0,ziel,100,100,0) Then Delete s.shot : shots=shots-1
- Next
- WaitTimer fps
- WaitTimer timer
- Flip 0
- Cls
- Until KeyHit(1)
- End
- Function FileExists(Datei$)
- If FileType(Datei) =1 Then
- Return True
- EndIf
- End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement