Seite 1 von 1
Maus im vollbild
Verfasst: 22.03.2005 01:57
von zigapeda
wenn ich eine Maus im vollbild anzeigen möchte mache ich das so:
Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(1024,768,32,"")
LoadSprite(0,"Data\Sprites\Mouse.bmp")
Repeat
FlipBuffers()
ExamineKeyboard()
ExamineMouse()
ClearScreen(255,255,255)
StartDrawing(ScreenOutput())
DisplaySprite(0,MouseX(),MouseY())
StopDrawing()
Until KeyboardPushed(#pb_key_escape)
was ist daran falsch?
Verfasst: 22.03.2005 02:29
von Hroudtwolf
Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(1024,768,32,"")
LoadSprite(0,"Data\Sprites\Mouse.bmp")
TransparentSpriteColor (0,255,0,255); Rosa als Transparente Farbe
Repeat
FlipBuffers()
ClearScreen(0,0,0)
ExamineKeyboard()
ExamineMouse()
DisplayTransparentSprite(0,MouseX(),MouseY())
Until KeyboardPushed(#pb_key_escape)
Verfasst: 22.03.2005 02:31
von glubschi90
Genau: Start bzw. Stopdrawing() werden bei Sprite-Befehlen nicht benötigt!
Verfasst: 22.03.2005 02:35
von zigapeda
Ok bei mir funktionierts jetzt auch danke
Verfasst: 22.03.2005 03:07
von zigapeda
jetzt hab ich die maus und wie kann ich jetzt feststellen ob ein bestimmter bereich angeklickt wurde?
Code: Alles auswählen
If MouseButton(1) And MouseX() > 30 And MouseX() < 210 And MouseY() > 30 And MouseY() < 46
StartDrawing(ScreenOutput())
Box(230,30,774,250,RGB(65,155,65))
StopDrawing()
endIf
funktioniert nicht
Verfasst: 22.03.2005 03:12
von Hroudtwolf
Ein Spritecollison währe eine Sache.
Code: Alles auswählen
if SpriteCollision (Maus,MausX,MausY,Sprite,Spritex,Spritey)
gedrueckt=1
endif
Wenn es aber wirklich ein Bereich sein soll. Musst du das aus den Koordinaten der Maus und des Bereichs berechnen.
Verfasst: 22.03.2005 03:21
von zigapeda
wenn das nicht andest geht, also mit dem bereich, schreib ich mir meine eigene funktion aber trotzdem danke
Verfasst: 22.03.2005 03:33
von zigapeda
Jetzt hab ich noch ein problem mit der funktion:
Code: Alles auswählen
Procedure Mausklick(x,y,width,height)
If MouseButton(1)
If MouseX() >= x
If MouseX() <= width + x
If MouseY() >= y
If MouseY() <= height + y
;Hier soll Mausklick = 1 sein
Else
;Hier soll mausklick = 0 sein
EndIf
EndIf
EndIf
EndIf
Endif
endprocedure
Wenn ich schreibe:
Code: Alles auswählen
If Mausklick(30,30,30,30) = 1
;Programmteil
Endif[code]
Verfasst: 22.03.2005 04:18
von glubschi90
Code: Alles auswählen
Procedure Mausklick(x,y,width,height,Button)
mx=MouseX()
my=MouseY()
If mx >= x And mx <= width + x And my >= y And my <= height + y
If MouseButton(Button)
;...
Else
;...
EndIf
EndIf
EndProcedure
Verfasst: 22.03.2005 08:01
von DarkDragon
Manoman, bei mir funktioniert das aber doch O_o
Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(1024,768,32,"")
CreateSprite(0,2, 2)
StartDrawing(SpriteOutput(0))
Box(0, 0, 2, 2, $FF0000)
StopDrawing()
TransparentSpriteColor (0,255,0,255); Rosa als Transparente Farbe
Repeat
FlipBuffers()
ClearScreen(0,0,0)
ExamineKeyboard()
ExamineMouse()
StartDrawing(ScreenOutput())
Box(30,30,210,46,RGB(196, 196, 196))
Locate(30, 30)
DrawingMode(1)
DrawText("Hier geklickt lassen")
StopDrawing()
DisplayTransparentSprite(0,MouseX(),MouseY())
If MouseButton(1) And MouseX() > 30 And MouseX() < 210 And MouseY() > 30 And MouseY() < 46
StartDrawing(ScreenOutput())
Box(230,30,774,250,RGB(65,155,65))
StopDrawing()
EndIf
Until KeyboardPushed(#pb_key_escape)
Fahr mit der Maus über den sichtbaren Kasten und lass die linke Maustaste gedrückt.
Achja: und schalt den debugger aus, der macht den Fehler!