Seite 1 von 2

Dance the Kirby Dance !

Verfasst: 20.02.2005 03:46
von MVXA
Tach !
Ich hab mal aus langeweile ein 20 Zeilen langes Programm geschrieben. Schimpfen tut es wie der Topic schon sagt 'Dance the Kirby Dance !'. Seht es euch am bessten einfach mal an :mrgreen:.

Code: Alles auswählen

Global frmMain.l, lblKyrbe.l, fntArial.l, lngStep.l

frmMain = OpenWindow(#PB_Any, 0, 0, 100, 25, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Kirby")
If frmMain <> 0
    fntArial = LoadFont(1, "Arial", 9) 
    If CreateGadgetList(WindowID(frmMain))
        lblKyrbe = TextGadget(#PB_Any, 25, 5, 50, 20, "")
        SetGadgetFont(lblKyrbe, fntArial) 
    EndIf 
    
    Repeat
        Select lngStep
            Case 0: SetGadgetText(lblKyrbe, "<(^_^<)")
            Case 1: SetGadgetText(lblKyrbe, "^(^_^)^")
            Case 2: SetGadgetText(lblKyrbe, "(>^_^)>")
            Default: lngStep = -1
        EndSelect 
        lngStep + 1: Delay(500)
    Until WindowEvent() = #PB_Event_CloseWindow    
EndIf

Verfasst: 20.02.2005 03:54
von Kaeru Gaman
*lol* :mrgreen:

btw:
ist "Dance the Kirby Dance" irgentein zitat?

bzw. "Kyrbe Dance".....

Verfasst: 20.02.2005 04:18
von ts-soft
Sieht ganz nett aus :D
Aber warum deklarierst Du lauter Globale Variablen, es gibt nicht eine Prozedur in dem Code

Verfasst: 20.02.2005 04:44
von Laurin
Lustig! :allright:

Das Ding frißt 100% Systemressourcen. :shock: Ich sollte mir wohl mal einen neuen Rechner anschaffen (siehe mein Profil).

(Alternative: Nimm die Zeile mit den globalen Variablen raus und füge stattdessen ein WindowEvent() ein. )

Greetz Laurin

Verfasst: 20.02.2005 09:28
von DarkDragon
Sehr schön :mrgreen:
Laurin hat geschrieben:(Alternative: Nimm die Zeile mit den globalen Variablen raus und füge stattdessen ein WindowEvent() ein. )

Hmm??? Ohne geöffnetes Fenster macht aber ein WindowEvent() nicht viel sinn. Was er machen sollte ist das Delay() mit einer ElapsedMilliseconds() methode auszutauschen, dann dürfte die CPU Auslastung auch nicht so stark sein, aber was mich wundert: warum regt ihr euch wegen diesen 99% Auslastung so auf? Macht bei einem solchen kleinen Ding doch hoffentlich nichts. Bei mir hat davon noch nichts Schaden genommen.

Verfasst: 20.02.2005 13:18
von Ynnus
Die Delay Methode ist in der Tat sehr schlecht gewählt. Dadurch kann der User immer eine halbe Sekunde lang nicht auf das Fenster zugreifen um es etwa zu Verschieben oder zu schließen. Demnach muss man mehrfach klicken bis irgendwann per Zufall der Tastendruck erkannt wird, weil gerade die 500 ms abgelaufen sind und die anderen Messages verarbeitet werden können. Das solltest du schnell korigieren. ;)

Verfasst: 20.02.2005 14:08
von MVXA
Bei mir wird die CPU nicht zu 100% ausgelastet /:->. Und das mit dem Delay werde ich dann nochmal überarbeiten...

Verfasst: 20.02.2005 15:05
von Hroudtwolf
Prozessorbelastung hin oder her....
Dat Ding ist goldig. :allright:

Verfasst: 20.02.2005 22:04
von Deeem2031
richtig süß :)

aber der Code sollte wirklich überarbeitet werden, meine Idee wäre so:

Code: Alles auswählen

Global frmMain.l, lblKyrbe.l, fntArial.l, lngStep.l 

frmMain = OpenWindow(#PB_Any, 0, 0, 100, 25, #PB_Window_ScreenCentered | #PB_Window_SystemMenu, "Kirby") 
SetTimer_(WindowID(),1,500,0)

If frmMain <> 0 
  fntArial = LoadFont(1, "Arial", 9) 
  If CreateGadgetList(WindowID(frmMain)) 
    lblKyrbe = TextGadget(#PB_Any, 25, 5, 50, 20, "(>^_^)>") 
    SetGadgetFont(lblKyrbe, fntArial) 
  EndIf 
  
  Repeat 
    Select WaitWindowEvent()
      Case #WM_TIMER
        Select lngStep 
          Case 0: SetGadgetText(lblKyrbe, "<(^_^<)") 
          Case 1: SetGadgetText(lblKyrbe, "^(^_^)^") 
          Case 2: SetGadgetText(lblKyrbe, "(>^_^)>") 
          Default: lngStep = -1 
        EndSelect 
        lngStep + 1
      Case #PB_Event_CloseWindow
        quit = 1
    EndSelect
  Until quit
EndIf

Verfasst: 20.02.2005 23:18
von MVXA
@Deeem2031
Joa, kann man so stehen lassen. Ich hate nur keine Zeit heute das nochmal zu fixen. Musste für 2 Arbeiten lernen und sonst noch Hausaufgaben machen :oops:. Ne interessante Idee wäre es ein Programm zu schreiben das speziel Dateien mit sollchen Ascii Bildchen/Filmchen einliest und dann ausführt :lol:.