Code: Select all
EndStructure
NewList Fader.Fader()
NewList Water.Water()
;- Procedures
Procedure CreateFader(X.f,Y.f,Width.f,Height.f)
AddElement(Fader())
Fader()\X = X
Fader()\Y = Y
Fader()\Width = Width
Fader()\Height = Height
Fader()\Fade = 0
Fader()\FadeDir = 0
EndProcedure
Procedure UpdateFader()
If CountList(Fader()) > 0
ResetList(Fader())
StartDrawing(ScreenOutput())
While NextElement(Fader())
If Fader()\FadeDir = 0
Fader()\Fade + 10
If Fader()\Fade > 200
Fader()\FadeDir = 1
EndIf
Else
Fader()\Fade - 10
If Fader()\Fade < 10
DeleteElement(Fader())
Continue
EndIf
EndIf
Line(Fader()\X,Fader()\Y,Fader()\Width,Fader()\Height,RGB(0,0,Fader()\Fade))
Wend
StopDrawing()
EndIf
EndProcedure
Procedure CreateWater()
AddElement(Water())
Water()\X = 100
Water()\Y = 960
Water()\XS = ((Random(PowerSide*200)+PowerSide*200)/100)+5
Water()\YS = PowerUp
Water()\NOH = 1
EndProcedure
Procedure UpdateWater()
If CountList(Water()) > 0
ResetList(Water())
While NextElement(Water())
CreateFader(Water()\X,Water()\Y,Water()\XS,Water()\YS)
Water()\X + Water()\XS
Water()\Y + Water()\YS
If Water()\YS < Gravity
Water()\YS + Force
EndIf
If Water()\X > 1280 Or Water()\X < 0
DeleteElement(Water())
Continue
EndIf
If Water()\Y > 960
DeleteElement(Water())
Continue
EndIf
Wend
EndIf
EndProcedure
;- Main Loop
Repeat
ClearScreen(0,0,0)
UpdateFader()
FlipBuffers()
UpdateWater()
If Counter = TimeDelay
Counter = 0
PowerUp.l = -(Random(Power)+2)
CreateWater()
Beep_(-(PowerUp*100),50)
EndIf
Counter + 1
ExamineKeyboard()
If KeyboardPushed(#PB_Key_All)
End
EndIf