Verstehe auch nicht woran das liegt...
Glaube das muss oben nach OpenWindow() stehen.
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
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")
;Fehler
End
EndIf
Wechsel = 1000 ;Alle 1000ms (1 sek) ein Takt
BackColor = $FFFFFF
FrontColor = $00FF00
Type = 0
If LoadSound(0,"C:\Programme\PureBasic\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