Advertisement
Guest User

Untitled

a guest
Aug 17th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.66 KB | None | 0 0
  1. AppTitle "Undead - Die Zombies kommen!"
  2.  
  3. Graphics 800,600,16,2
  4. SetBuffer BackBuffer()
  5.  
  6. FPS = CreateTimer (60)
  7.  
  8. SeedRnd MilliSecs()
  9. Local timer%=CreateTimer(60)
  10. Local player_X%=400
  11. Local player_Y%=300
  12. Local schuss_X#=0
  13. Local schuss_Y#=0
  14. Local schuss%=False
  15. Local shots%=0
  16. Local shotr%=0
  17. Local random#=0.0
  18.  
  19.  
  20.  
  21. ;------------------------- MAgazin
  22.  
  23.  
  24.  
  25. HidePointer()
  26. stein2 = LoadImage("gfx/stein.png")
  27. ziel = LoadImage("gfx/zielscheibe.png")
  28. health = LoadImage("gfx/health.png")
  29. s_symbol = LoadImage("gfx/waffen/seconda_symbol.png")
  30. gui = LoadImage("gfx/gui/gui.png")
  31. schuss = LoadImage("gfx/schuss.png")
  32. Pointer = LoadImage ("gfx/gui/pointer.png")
  33. level = LoadImage ("gfx/spiel_hintergrund.png")
  34. Const Filename$ = "gfx/imagestrip.png"
  35.  
  36. If FileType( Filename$ ) = 1 Then ;Exestiert
  37. Local ImageStrip = LoadAnimImage( Filename$, 64, 64, 0, 72 )
  38. Else
  39. ImageStrip = CreateImage( 72*64, 64 )
  40.  
  41.  
  42. Image = LoadImage ("gfx/spieler.png")
  43.  
  44.  
  45. SetBuffer ImageBuffer( ImageStrip )
  46.  
  47. For i = 0 To 71
  48.  
  49. Local tmpImage = CopyImage( Image )
  50. HandleImage( tmpImage, 32, 32 )
  51. RotateImage( tmpImage, i*5 )
  52. DrawImage( tmpImage, 32+i*64, 32 )
  53. FreeImage( tmpImage )
  54. Next
  55. SaveImage( imageStrip, Filename$ )
  56. FreeImage( imageStrip )
  57. ImageStrip = LoadAnimImage( Filename$, 64, 64, 0, 72 )
  58. EndIf
  59.  
  60. HandleImage( ImageStrip, 32, 32 )
  61. SetBuffer BackBuffer( )
  62. Local angle#, image_angle
  63.  
  64.  
  65. Type shot
  66. Field X#
  67. Field Y#
  68. Field angle#
  69. End Type
  70.  
  71. Global s.shot
  72.  
  73.  
  74.  
  75. Local Datei$, DateiHandle%, Name$
  76. Datei="config/uzi.txt"
  77. If FileExists(Datei$) Then
  78. DateiHandle=ReadFile(Datei)
  79. bulletspeed#=ReadLine(DateiHandle) ; schussgeschwindigkeit
  80. magazine=ReadLine(DateiHandle) ; maximal zu tragene magazine
  81. magazin=ReadLine(DateiHandle) ; anzahl schuss im magazin
  82. CloseFile DateiHandle
  83. EndIf
  84.  
  85. Local spieler$, DateiHandle2%, Name2$
  86. spieler="config/spieler.txt"
  87. If FileExists(spieler) Then
  88. DateiHandle2=ReadFile(spieler)
  89. leben_spieler%=ReadLine(DateiHandle2) ; maximale Gesundheit
  90. walk_speed=ReadLine(DateiHandle2) ; lauf-geschwindigkeit
  91. CloseFile DateiHandle2
  92. EndIf
  93.  
  94.  
  95. Repeat ; --------------------------------------HAUPTSCHLEIFE-----------------------------------
  96.  
  97. DrawImage level, 0,0
  98. DrawImage ziel, 100,100
  99. DrawImage stein2, 400,350
  100. DrawImage wand1, 737,300
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109. If player_x>785 Then player_x=785
  110. If player_y>585 Then player_y=585
  111.  
  112. If player_x<15 Then player_x=15
  113. If player_y<15 Then player_y=15
  114.  
  115.  
  116.  
  117. ;---------------------------------------------------------------------------------------------------
  118. ; Bewegen & Steuern der Figur & Mauszeiger
  119. ;---------------------------------------------------------------------------------------------------
  120.  
  121. If KeyDown(30) Then player_x=player_x-walk_speed
  122. If KeyDown(32) Then player_x=player_x+walk_speed
  123. If KeyDown(31) Then player_y=player_y+walk_speed
  124. If KeyDown(17) Then player_y=player_y-walk_speed
  125.  
  126. If KeyDown(30) And ImageRectCollide (imagestrip ,player_x,player_y,0,stein,400,350,0) Then player_x=player_x+2
  127. If KeyDown(32) And ImageRectCollide (imagestrip ,player_x,player_y,0,stein,400,350,0) Then player_x=player_x-2
  128. If KeyDown(31) And ImageRectCollide (imagestrip ,player_x,player_y,0,stein,400,350,0) Then player_y=player_y-2
  129. If KeyDown(17) And ImageRectCollide (imagestrip ,player_x,player_y,0,stein,400,350,0) Then player_y=player_y+2
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. angle# = (ATan2( MouseY( )-player_y, MouseX( )-player_x )+360) Mod 359.0 ;Winkel von der Mitte zur Maus
  137.  
  138. image_angle = Floor(angle# / 5.0) ;Bild-Index errechnen (Floor -> Abrunden der Kommazahl)
  139.  
  140. ;Bild malen mit dem errechnetem Index
  141.  
  142. mx = MouseX()
  143. my = MouseY()
  144.  
  145. DrawImage( ImageStrip, player_x, player_y, image_angle )
  146. HandleImage imagestrip ,28,28
  147.  
  148. DrawImage pointer, mx,my
  149. HandleImage( pointer, 16, 16 )
  150. ;------------------------------------------------------------
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158. DrawImage gui, 0,0
  159. DrawImage health, 20,550 ;--------------------------------------------------------------
  160.  
  161.  
  162. Locate 10,10
  163. Print "WASD zum bewegen"
  164. Locate 10,30
  165. Print "[r] zum nachladen"
  166. Locate 10,50
  167. Print "Maus zum zielen und Schießen"
  168.  
  169. Color 0, 0, 0 ;!!!!!!!
  170. Text 665,575, "Magazin: " + magazin + "/200" ;-------------------
  171. Text 665,560, "Magazine: " + magazine + "/3"
  172. Text 665,540, "Waffe: Uzi"
  173. Text 10,80, "Kugeln verschossen: " + shotr
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181. If MouseDown(1) Or MouseHit(2)
  182. If magazin = 0
  183. Locate 500,500
  184. Else
  185. magazin=magazin-1
  186. shots=shots+1
  187. shotr=shotr+1
  188. s.shot = New shot
  189. s\angle=ATan2(MouseY()-player_y,MouseX()-player_x) ;winkel spieler-maus
  190. s\X=player_x:s\Y=player_y
  191. EndIf
  192. EndIf
  193. If magazin = 0
  194. Locate 340,200
  195. Print "Nachladen! [r]"
  196. EndIf
  197.  
  198.  
  199.  
  200. ;---- Nachladen
  201. If KeyHit(19)
  202. If magazine<1 ; wenn magazin kleiner als 1 - nicht nachladen, ansonsten
  203. Else
  204. If magazin>12 ; Wenn magazin voll, nicht nachladen ansonsten
  205. Else
  206. magazine=magazine-1 ; ein magazin abziehen
  207. magazin=200 ; kugeln einfüllen
  208. EndIf
  209. EndIf
  210. EndIf
  211.  
  212.  
  213. For s.shot = Each shot
  214. s\X=s\X+Cos(s\angle)*bulletspeed
  215. s\Y=s\Y+Sin(s\angle)*bulletspeed
  216. DrawImage Schuss ,s\X,s\Y
  217. ; If ImagesCollide (Schuss ,s\X,s\Y,0,ziel,100,100,0) Then Delete s.shot : shots=shots-1
  218. ;Text 200,200, "Kollision"
  219.  
  220. 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
  221. Next
  222.  
  223. WaitTimer fps
  224. WaitTimer timer
  225.  
  226. Flip 0
  227. Cls
  228. Until KeyHit(1)
  229. End
  230.  
  231. Function FileExists(Datei$)
  232. If FileType(Datei) =1 Then
  233. Return True
  234. EndIf
  235. End Function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement