F1 - F4: Plot() mit Abständen von 0 bis 8
F5 - F8: Line() mit Abständen von 0 bis 8
Zu den Systemvorraussetzungen: Auf meinem 1,2Ghz-PC läuft das Programm recht schnell, wenn es die Datei erst einmal komplett durchlaufen hat. Die einzelenen Tasten muss man aber trotzdem meist mehrere Sekunden gedrückt halten. Alles in allem läuft es jedoch durchaus akzeptabel. Für rechner unter 600-800Mhz würde ich das Programm jedoch definitiv nicht empfehlen. Was das RAM angeht: Je mehr, deso besser! (Ich habe 256MB SD-RAM)
Die Idee habe ich übrigens aus dem Thread über die seltsamen C64-Screen beim Laden mancher Programme in der Laberecke...
Viel Spaß beim Anschauen!
Code: Alles auswählen
ResX.w = 1280
ResY.w = 1024
Mode = 1
ProgramName.s = "hardfalcon's file player"
If 0 = InitSprite() Or 0 = InitKeyboard()
MessageRequester(ProgramName,"Failed to initialize DirectX 7 or higher!")
End
Else
Repeat
File.s = OpenFileRequester(ProgramName,"C:\","All files|*",0)
If "" = File
End
EndIf
Until ReadFile(0,File)
If OpenScreen(ResX,ResY,32,ProgramName)
Repeat
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
Select Mode
Case 1
For y = 0 To ResY-1
For x = 0 To ResX-1
Plot(x,y,ReadLong())
Next x
Next y
Case 2
For y = 0 To ResY-1 Step 2
For x = 0 To ResX-1 Step 2
Plot(x,y,ReadLong())
Next x
Next y
Case 3
For y = 0 To ResY-1 Step 4
For x = 0 To ResX-1 Step 4
Plot(x,y,ReadLong())
Next x
Next y
Case 4
For y = 0 To ResY-1 Step 8
For x = 0 To ResX-1 Step 8
Plot(x,y,ReadLong())
Next x
Next y
Case 5
For y = 0 To ResY-1
For x = 0 To ResX-1
Line(x,y,ReadByte(),ReadByte(),ReadLong())
Next x
Next y
Case 6
For y = 0 To ResY-1 Step 2
For x = 0 To ResX-1 Step 2
Line(x,y,ReadByte(),ReadByte(),ReadLong())
Next x
Next y
Case 7
For y = 0 To ResY-1 Step 4
For x = 0 To ResX-1 Step 4
Line(x,y,ReadByte(),ReadByte(),ReadLong())
Next x
Next y
Case 8
For y = 0 To ResY-1 Step 8
For x = 0 To ResX-1 Step 8
Line(x,y,ReadByte(),ReadByte(),ReadLong())
Next x
Next y
EndSelect
StopDrawing()
FlipBuffers()
If Eof(0)
FileSeek(0)
EndIf
Delay(10)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_F1)
Mode = 1
ElseIf KeyboardPushed(#PB_Key_F2)
Mode = 2
ElseIf KeyboardPushed(#PB_Key_F3)
Mode = 3
ElseIf KeyboardPushed(#PB_Key_F4)
Mode = 4
ElseIf KeyboardPushed(#PB_Key_F5)
Mode = 5
ElseIf KeyboardPushed(#PB_Key_F6)
Mode = 6
ElseIf KeyboardPushed(#PB_Key_F7)
Mode = 7
ElseIf KeyboardPushed(#PB_Key_F8)
Mode = 8
EndIf
Until KeyboardPushed(#PB_Key_Escape)
Else
MessageRequester(ProgramName,"Failed to open a 640*480 32bit screen!")
End
EndIf
EndIf