Problem mit Maus- und Canvas- Koordinaten
Übersicht

XenowaBetreff: Problem mit Maus- und Canvas- Koordinaten |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo, ich habe da folgendes Problem: ich möchte mit BlitzPlus die Mauskoordinaten mit einer Canvasecke vergleichen.
Code: [AUSKLAPPEN] ;Hier wird abgefragt ob die Taste gedrückt ist, und dann der Wert Mit MouseX(Canvas) übergeben. ;--- MausTaste = GetMouse() if MausTaste = 1 Then MausPosition(MouseX(TileSetAnsicht), MouseY(TileSetAnsicht)) ;--- ;Und hier werden die Ränder des Canvas abgespeichert und nacher mit den Mauskoordinaten verglichen ;--- TileCanvasOben = GadgetX(TileSetAnsicht) TileCanvasUnten = GadgetX(TileSetAnsicht) + GadgetWidth(TileSetAnsicht) TileCanvasLinks = GadgetY(TileSetAnsicht) TileCanvasRechts = GadgetY(TileSetAnsicht) + GadgetHeight(TileSetAnsicht) If MausX >= TileCanvasLinks And MausX <= TileCanvasRechts And MausY >= TileCanvasOben And MausY <= TileCanvasUnten Then ;irgendwas EndIf Mit dieser funktion ist doch genau der fall abgedeckt, wenn die Maus sich innerhalb des Canvasfeldes befindet, oder irre ich mich da? Jedenfalls funktioniert es bei mir überhaupt nicht, ich kann zum teil mehrere cm in das Canvas hineinfahren, und es passiert nichts. Ich hoffe ihr könnt mir weiterhelfen. |
||
![]() |
Dante |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmm einfach MouseX(Canvas) und MouseY(Canvas)
dann sollte es klappen^^ Edit: Und die Einmklammerung durch die Bedingungen sollten dann auch Überflüssig sein MfG |
||
![]() |
Cardonic |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielleicht hilft dir das was : Code: [AUSKLAPPEN] Window = CreateWindow("",0,0,800,600,0,1)
Label = CreateLabel("",10,10,ClientWidth(Window)-20,20,Window,1) Canvas = CreateCanvas(10,40,ClientWidth(Window)-20,ClientHeight(Window)-50,Window) Repeat Select WaitEvent() Case $203 If EventSource() = Canvas Then SetGadgetText Label,EventX()+" : "+EventY() EndIf Case $803 End End Select Forever mfg Cardonic |
||
If you should go skating on the thin ice of modern life, dragging behind you the silent reproach of a million tear-stained eyes, don't be surprised when a crack in the ice appears under your feet. |
Xenowa |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe jetzt in den Code (von Cardonic) noch dashier reinkopiert:
Code: [AUSKLAPPEN] Window = CreateWindow("",0,0,800,600,0,1) Label = CreateLabel("",10,10,ClientWidth(Window)-20,20,Window,1) Canvas = CreateCanvas(10,40,ClientWidth(Window)-20,ClientHeight(Window)-50,Window) ------->SetBuffer CanvasBuffer(Canvas) Repeat Select WaitEvent() Case $203 If EventSource() = Canvas Then SetGadgetText Label,EventX()+" : "+EventY() ------->Cls ------->Rect GadgetX(Canvas), GadgetY(Canvas), Ceil(EventX() / 32) * 32, Ceil(EventY() / 32) * 32 ------->FlipCanvas(Canvas) EndIf Case $803 End End Select Forever Und das ergebnis ist immernoch, dass das Rechteck so komisch verschoben, also nicht von der Ecke des Canvas an (Was ja das Gadget(X) eigetlich definiert), gezeichnet wird. Edit: Ok jetzt ists klar: Wenn ich den buffer auf das canvas setzte werden von diesen koordinaten automatisch asgegangen ... -_- Danke, problem gelöst |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group