Code: Alles auswählen
InitSprite()
InitSound()
If OpenWindow(0,0,0,640,480,"Metronom",#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_ScreenCentered)
If OpenWindowedScreen(WindowID(0),0,0,480,480,0,160,0) = 0
;Fehler
End
EndIf
Wechsel = 1000 ;Alle 1000ms (1 sek) ein Takt
BackColor = $FFFFFF
FrontColor = $00FF00
Type = 0
TextGadget(0,490,13,80,20,"Intervall in ms")
SpinGadget(1,570,10,60,20,25,10000) : SetGadgetState(1,Wechsel) : SetGadgetText(1,Str(Wechsel))
TextGadget(2,490,43,80,20,"Lautstärke")
TrackBarGadget(3,560,40,80,20,0,100) : SetGadgetState(3,100)
ButtonGadget(4,490,70,140,20,"Sound ändern")
ButtonGadget(5,490,100,65,20,"Hintergrund")
ButtonGadget(6,565,100,65,20,"Fordergrund")
ComboBoxGadget(7,490,130,140,20)
AddGadgetItem(7,0,"Zeiger-Metronom") : SetGadgetState(7,0)
AddGadgetItem(7,1,"Punkt-Metronom")
AddGadgetItem(7,2,"Ball-Metronom")
If LoadSound(0,"pong.wav")
Sound = 1
Else
Sound = -1
EndIf
Metronomx = ElapsedMilliseconds()
Repeat
ClearScreen(BackColor)
StartDrawing(ScreenOutput())
FrontColor(FrontColor)
Select Type
Case 0
If Metrox = 1
LineXY(240,470,(ElapsedMilliseconds()-Metronomx)*460/Wechsel+10,10)
Else
LineXY(240,470,(Metronomx-ElapsedMilliseconds())*460/Wechsel+470,10)
EndIf
Case 1
If Metrox = 1
Circle(80,120,40+(Metronomx-ElapsedMilliseconds())*39/Wechsel)
Else
Circle(400,120,40+(Metronomx-ElapsedMilliseconds())*39/Wechsel)
EndIf
Case 2
If Metrox = 1
Circle(240+Cos((ElapsedMilliseconds()-Metronomx)*#PI/Wechsel+#PI)*200,240+Sin((ElapsedMilliseconds()-Metronomx)*#PI/Wechsel+#PI)*200,25)
Else
Circle(240+Cos((Metronomx-ElapsedMilliseconds())*#PI/Wechsel)*200,240+Sin((Metronomx-ElapsedMilliseconds())*#PI/Wechsel)*200,25)
EndIf
EndSelect
StopDrawing()
FlipBuffers()
If ElapsedMilliseconds()-Metronomx >= Wechsel
If Metrox = 1
Metrox = 0
If Sound = 1
SoundPan(0,100)
EndIf
Else
Metrox = 1
If Sound = 1
SoundPan(0,-100)
EndIf
EndIf
Metronomx = ElapsedMilliseconds()
If Sound = 1
PlaySound(0)
EndIf
EndIf
event = WindowEvent()
Select event
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
Select EventGadget()
Case 1
SetGadgetText(1,Str(GetGadgetState(1))+" ms")
Wechsel = GetGadgetState(1)
Case 3
If Sound <> -1
If GetGadgetState(3) = 0
Sound = 0
Else
Sound = 1
SoundVolume(0,GetGadgetState(3))
EndIf
EndIf
Case 4
path$ = OpenFileRequester("Sound auswählen!","","WAV-Dateien|*.wav",0)
If path$
If Sound = -1
If LoadSound(0,path$)
Sound = 1
EndIf
Else
StopSound(0)
FreeSound(0)
If LoadSound(0,path$) = 0
Sound = -1
EndIf
EndIf
EndIf
Case 5
buff = ColorRequester()
If buff > -1
BackColor = buff
EndIf
Case 6
buff = ColorRequester()
If buff > -1
FrontColor = buff
EndIf
Case 7
Type = GetGadgetState(7)
EndSelect
EndSelect
ForEver
EndIf
Die Frage is wieviel dir das bringt, du kannst es gerne weiter ausbauen, bei Fragen stehe ich natürlich bereit
Ich hab gleich mal ein paar Verschiedene Gadgets benutzt damit du ein paar kennenlernst^^