Advertisement
Guest User

Untitled

a guest
Jul 1st, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; Structure for our object
  2. Structure AnimatedObj
  3.   x.i         ;position x
  4.   y.i         ;position y
  5.   delay.i     ;time to next frame
  6.   delayTime.i ;save delay time
  7.   frame.i     ;frame (number from LoadSprite, not best way but easy :-P )
  8. EndStructure
  9.  
  10. ; Create 5 ships with random stats
  11. Global Dim ship.AnimatedObj(5)
  12. For i = 0 To ArraySize(ship())
  13.   ship(i)\x = (i*64)
  14.   ship(i)\y = 0
  15.   ship(i)\delayTime = Random(10, 4)   ;Random speed
  16.   ship(i)\delay = ship(i)\delayTime
  17.   ship(i)\frame = Random(5, 0)
  18. Next
  19.  
  20. ;Render function
  21. Procedure RenderFrame()
  22.   ;Animate Ships
  23.   For i = 0 To ArraySize(ship())
  24.     ship(i)\delay -1
  25.     If ship(i)\delay = 0
  26.       ship(i)\frame + 1
  27.       ship(i)\delay = ship(i)\delayTime
  28.       If ship(i)\frame = 6
  29.         ship(i)\frame = 0
  30.       EndIf
  31.     EndIf
  32.   Next
  33.  
  34.   ;Display ships
  35.   For i = 0 To ArraySize(ship())
  36.     DisplaySprite(ship(i)\frame, ship(i)\x, ship(i)\y)
  37.   Next
  38.  
  39.   ;Display our great game ;)
  40.   FlipBuffers()
  41. EndProcedure
  42.  
  43. ;Loading function
  44. Procedure Loading(Type, Filename$)
  45.   Static NbLoadedElements
  46.  
  47.   NbLoadedElements+1
  48.   If NbLoadedElements = 6
  49.     FlipBuffers()
  50.   EndIf
  51. EndProcedure
  52.  
  53. ;LoadingError function
  54. Procedure LoadingError(Type, Filename$)
  55.   Debug Filename$ + ": loading error"
  56. EndProcedure
  57.  
  58. ; Create screen and set framerate
  59. OpenScreen(800, 600, 32, "Animation")
  60. SetFrameRate(60)
  61.  
  62. ; Register the loading event before calling any resource load command
  63. BindEvent(#PB_Event_Loading, @Loading())
  64. BindEvent(#PB_Event_LoadingError, @LoadingError())
  65. BindEvent(#PB_Event_RenderFrame, @RenderFrame())
  66.  
  67. LoadSprite(0, "data/frame1.png")
  68. LoadSprite(1, "data/frame2.png")
  69. LoadSprite(2, "data/frame3.png")
  70. LoadSprite(3, "data/frame4.png")
  71. LoadSprite(4, "data/frame5.png")
  72. LoadSprite(5, "data/frame6.png")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement