nach dem ich also in mühseeliger Kleinarbeit mein Programm
endlich so weit habe, zwei verschiedene Sprites wechselweise
mit dem Mauszeiger zu bewegen, weiss ich nun nicht, warum
diese auch nach dem MouseButton(2) noch am Mauszeiger hängen
(trotz FreeSprite danach) und warum diese weg sind, wenn ich
auf den ersten Button klicke.
Wer weiss Rat ?
Hier also das komplette Programm
Code: Alles auswählen
Declare SPRITE1_UEBR_FLAECHE_BEWEGEN()
Declare SPRITE2_UEBR_FLAECHE_BEWEGEN()
OpenWindow(1, 0, 0, 640, 480, #PB_Window_SystemMenu |#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget | #PB_Window_SizeGadget| #PB_Window_MaximizeGadget | #PB_Window_TitleBar , "...")
CreateGadgetList(WindowID(1))
ButtonGadget(2, 530, 30, 112, 20, "Nichts")
ButtonGadget(3, 530, 50, 112, 20, "Sprite 1")
ButtonGadget(4, 530, 70, 112, 20, "Sprite 2")
InitKeyboard()
InitSprite()
InitMouse()
OpenWindowedScreen(WindowID(1), 1, 1, 640-112, 480-76, 0, 1,1)
CreateSprite(100, 640-112, 480-76) ;der schwarze Hintergrund
Repeat
EVENT = WaitWindowEvent()
If EVENT
Select EventGadgetID()
Case 3
SPRITE1_UEBR_FLAECHE_BEWEGEN()
Case 4
SPRITE2_UEBR_FLAECHE_BEWEGEN()
EndSelect
EndIf
Until WaitWindowEvent()=#PB_Event_CloseWindow
Procedure SPRITE1_UEBR_FLAECHE_BEWEGEN()
LoadSprite(101, "sprite_1.bmp")
Repeat
FlipBuffers()
DisplaySprite(100, 1, 1)
ExamineMouse()
DisplaySprite(101, WindowMouseX(), WindowMouseY())
ExamineKeyboard()
If MouseButton(2)
ReleaseMouse(1)
FreeSprite(101)
Break
EndIf
ForEver
EndProcedure
Procedure SPRITE2_UEBR_FLAECHE_BEWEGEN()
LoadSprite(102, "sprite_2.bmp")
Repeat
FlipBuffers()
DisplaySprite(100, 1, 1)
ExamineMouse()
DisplaySprite(102, WindowMouseX(), WindowMouseY())
ExamineKeyboard()
If MouseButton(2)
ReleaseMouse(1)
FreeSprite(102)
Break
EndIf
ForEver
EndProcedure
Vielen Dank nochmals im voraus für eure Hilfe !
Grüsse
irobot