PureGolf mit Scrollender Matrix
Verfasst: 09.02.2006 16:27

Wieder einmal werden eure Fähigkeiten im Kürzen von Codes gefordert.
Ja, hiermit eröffne ich meinen PureGolf!

Code: Alles auswählen
Structure Matrix_Letter
Green.c
Letter.c
EndStructure
#SCR_WIDTH = 800
#SCR_HEIGHT = 600
Global Dim Array_Screen_Letters.Matrix_Letter(#SCR_WIDTH/10,#SCR_HEIGHT/10)
Procedure ScrollMatrix()
For i = #SCR_HEIGHT/10 To 0 Step -1
For j = #SCR_WIDTH/10 To 0 Step -1
If i And Random(1)=0
scrollletter.c = Array_Screen_Letters(j,i-1)\Letter
Green.c = Array_Screen_Letters(j,i-1)\Green
With Array_Screen_Letters(j,i)
If Random(3)<>1
Letter = scrollletter
Else
Letter = Random(222)+33
EndIf
\Green = Green - Random(1)
If \Green <= 0
\Green = Random(250)
\Letter = Random(222)+33
EndIf
EndWith
ElseIf (Not i) And Random(1)=0
With Array_Screen_Letters(j,i)
\Letter = Random(222)+33
\Green = Random(250)
EndWith
EndIf
Next j
Next i
EndProcedure
For i = 0 To #SCR_HEIGHT/10
For j = 0 To #SCR_WIDTH/10
With Array_Screen_Letters(j,i)
\Green = Random(250)
\Letter = Random(222)+33
EndWith
Next j
Next i
If Not InitSprite()
MessageRequester("Fehler","Konnte DirectX nicht laden!")
EndIf
If Not InitKeyboard()
MessageRequester("Fehler","Konnte die Tastatur nicht laden!")
EndIf
If Not OpenScreen(#SCR_WIDTH,#SCR_HEIGHT,32,"Matrix")
MessageRequester("Fehler","Konnte keinen Screen nicht laden!")
EndIf
Repeat
ClearScreen(0)
StartDrawing(ScreenOutput())
For i = 0 To #SCR_HEIGHT/10
For j = 0 To #SCR_WIDTH/10
With Array_Screen_Letters(j,i)
DrawText(j*10,i*10,Chr(\Letter),RGB(0,\Green,0),0)
EndWith
Next j
Next i
StopDrawing()
FlipBuffers()
ScrollMatrix()
ExamineKeyboard()
Delay(1)
Until KeyboardPushed(#PB_Key_Escape)
Code: Alles auswählen
win = OpenWindow(0,0,0,200,45,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Codezähler")
CreateGadgetList(win)
StringGadget(0,0,0,140,20,"")
ButtonGadget(1,141,0,58,20,"Browse")
ButtonGadget(2,0,22,60,20,"Count")
TextGadget(3,65,25,200,20,"Zeichen: ")
Repeat
eventid=WaitWindowEvent()
If eventid=#PB_Event_Gadget
If EventGadget() = 1
file.s = OpenFileRequester("Open","","PB-Code *.pb | *.pb| Alles *.* | *.*",0)
SetGadgetText(0,file)
ElseIf EventGadget() = 2
count=0
If file
OpenFile(0,file)
While Eof(0) = 0
line.s = Trim(ReadString(0))
If Mid(line,1,1) <> ";" : count+Len(line) : EndIf
Wend
SetGadgetText(3,"Zeichen: "+Str(count))
EndIf
EndIf
EndIf
Until eventid = #PB_Event_CloseWindow

PS: 1432!
