Seite 1 von 2

Bildschirmschoner für Freaks

Verfasst: 23.09.2005 21:06
von hardfalcon
Dieses Programm öffnet eine Datei die ihr selbst auswählen könnt, und "malt" ihren Inhalt auf den Bildschirm. Am Besten sieht es natürlic mit BMP und WAV-Dateien aus, weil hier meist "schöne Bytemuster" vorliegen. Es gibt 8 verschiedene Zeichenmodi:
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... :allright:
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

Verfasst: 23.09.2005 22:12
von Laurin
Geil, vorallem der F8-Modus hats mir angetan. :D

Dabei ist das Prog eigendlich sehr simpel.

Verfasst: 23.09.2005 22:48
von ts-soft
Ja, F8 mit 700 MB MP3 File von Pink Floyd, das Rulez. Schade das die Musik dabei nicht gleichzeitig abgespielt wird :lol:

Verfasst: 24.09.2005 10:00
von hardfalcon
Schade dass die acht Forenuser, die eine negative Bewertung abgegeben haben, diese nicht begründen können... :|

@Laurin & ts-soft: freut mich, dass es euch gefällt! :D

Verfasst: 24.09.2005 10:14
von Kaeru Gaman
beim letzten punkt haben 3 von den 4 bestimmt nur geklickt,
weil der spruch so cool is... :mrgreen:

Verfasst: 24.09.2005 10:17
von hardfalcon
Dann bleiben immer noch fünf. Und das betrübt mein Programmiererherz doch zutiefst... :cry:

Verfasst: 24.09.2005 10:25
von Kaeru Gaman
mach dir nix draus...

ich hab noch garnix ausgewählt, weil ich noch keine muße zum testen hatte...

aber die grundidee sieht gut aus (vom code her),
man könnte die grundidee verwenden, um bei einem wirklichen ladevorgang einen effekt anzuzeigen...

Verfasst: 26.09.2005 10:04
von hardfalcon
Also ein BISSCHEN mehr Feedback hätte ich mir bei einem Programm mit ner Entwicklungszeit von immerhin 30 Minuten ja schon erwartet... :mrgreen:

Verfasst: 26.09.2005 13:35
von bobobo
Iich hab 4 geklickt weil es originelleres gibt. Brauch keinen Screensaver der den Prozessorlüfter zum Laufen bringt.

Verfasst: 26.09.2005 17:32
von AndyX
also ich find das echt genial :allright: Vorallem EXEs rocken :D