Mauskoordinaten abfragen
Übersicht

Takashi KenshinBetreff: Mauskoordinaten abfragen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich hab den tipp bekommen um die normale maus benutzen zu können einfach die mauskoordinaten abfragen kann anstatt kollisionsabfragen zu machen um z.B. das sich ein feld färbt wenn ich mit der maus drüber gehe.
Wie geht sowas ? |
||
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln. |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Was? | ||
![]() |
shure_kyuNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() ![]() viel spaß |
||
_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________ ◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de► ¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯ BBP-RSS FEED Halt dich auf dem laufenden! (C)Shure_kyu |
- Zuletzt bearbeitet von shure_kyu am Mi, Okt 17, 2007 0:40, insgesamt einmal bearbeitet
Takashi Kenshin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also mein ziel ist ein jetzt weißes Feld in ein Graueß Feld umzuwandeln. Dies soll geschehen so bald ich die Maus über dieses Feld bewege. Das bedeutet ich muss ja abfragen ob sich die mauskoordinaten innerhalb der Feldkoordinaten befinden.
ich habe das mehrere stunden probiert. Es kamen bei sämtlichen variationen fehler und ich hab absolut keine ideen mehr wie man sowas machen könnte. Code: [AUSKLAPPEN] AppTitle "Takashi Sudoku" Graphics 600, 400, 32, 2 ClsColor 130, 0, 0 Cls SetBuffer BackBuffer() Global Arial = LoadFont ("Arial", 38, 1, 0, 0) Global Ms = MouseHit(1) Global Spielfeld = LoadAnimImage ("Sudoku.bmp", 44, 44, 0, 81) Global Zahlenfeld = LoadAnimImage ("Zahlenfeld.bmp", 44, 44, 0, 9) Repeat Cls FELDER() ZAHLENFELD() Flip Until KeyHit(1) WaitKey Function FELDER() j = 0 For i = 0 To 352 Step 44 For i2 = 0 To 352 Step 44 DrawImage Spielfeld, i2, i, j j = j + 1 Next Next g = 0 For h = 267 To 357 Step 44 For h2 = 467 To 557 Step 44 DrawImage Zahlenfeld, h2, h, g g = g + 1 Next Next End Function Function ZAHLENFELD() SetFont Arial Color 0, 0, 0 a = 1 For c = 270 To 358 Step 44 For b = 481 To 569 Step 44 Text b, c, a a = a + 1 Next Next End Function |
||
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln. |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lege am besten ein virtuelles Gitter über das ganze und berechne immer in welchem Feld sich die Maus befindet, wenn sich die Grafik mit deinem Gitter deckt kannst du pixelgenau prüfen wo die Maus gerade ist. Siehe : https://www.blitzforum.de/gall...amp;page=5
Die Buttons passen genau in ein 16*16 Gitter. Wo die Maus gerade ist kannst du links erkennen, nämlich im Feld TileX/TileY was weiter nichts ist als mouseX/16 und mouseY/16. ![]() cu |
||
![]() |
shure_kyuNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
also mal gaaanz einfach für dich damit du heute auch gar nicht mehr deinen kopf anstrengen musst...
wenn du weißt das dein 1. feld z.B. 10 Pixel breit und 10 pixel hoch ist und es an x = 100 und y = 100 anfängt dann is das doch nicht so schwer oder ? du musst dann nur von 100 bis 100+ 10 auf x und das gleiche auf y abfragen, wenn die maus in dem kästchen ist dann soll halt rect 100,100,10,10 gemacht werden solange die maus dort ist. ![]() |
||
_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________ ◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de► ¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯ BBP-RSS FEED Halt dich auf dem laufenden! (C)Shure_kyu |
Takashi Kenshin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Virtuelles Gitter? ich kann mir schon sehr gut vorstellen was du damit meinst aber gibts für sowas ein tutorial??? | ||
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln. |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, für ein Gitter und 2 Divisionen gibt es leider kein Tutorial. Du kannst ja am Anfang ein echtes durchsichtiges benutzen. | ||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein virtuelles Gitter:
Code: [AUSKLAPPEN] Graphics 640,480,0,2
SetBuffer BackBuffer() While Not KeyHit(1) MX=MouseX() MY=MouseY() XVGitter=(MX/32)*32 YVGitter=(MY/32)*32 Rect XVGitter,YVGitter,32,32,0 Flip Cls Wend End edit1: Ach sorry Abrexxes, wollte dir nicht da zwischen funken... |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kein Problem, aber wenn du es ihm schon vorkaust dann haue auch noch eine Text Anzeige rein. ![]() |
||
Takashi Kenshin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also würde es so gehen?
Code: [AUSKLAPPEN] If MouseX = 0 + 44 If MouseY = 0 + 44 Color 128, 128, 128 Rect 44, 44, 0, 0, 1 EndIf EndIf P.s. kanns nicht ausprobieren. bin nicht an meinem pc. |
||
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln. |
![]() |
shure_kyuNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
wieso 0 + 44 ???
rechne mal 0 + 44 = 44 wieso also diese addition in der abfrage ?????? ![]() |
||
_______//¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\________ ◄Blitz 3D/MAX • PC - 2x 3.16Ghz, 4GB-Ram, ATi HD 4890 1024MB• win7 • site$ Rush2Play ° My-Htc.de► ¯¯¯¯¯¯¯\__________________________________________________________________________//¯¯¯¯¯¯¯¯ BBP-RSS FEED Halt dich auf dem laufenden! (C)Shure_kyu |
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Takashi Kenshin hat Folgendes geschrieben: P.s. kanns nicht ausprobieren. bin nicht an meinem pc. Das ist jetzt nicht dein Ernst. Du kennst nicht mal die Basis von Blitzbasic, stellst eine Frage nach der anderen und sitzt noch nicht mal an einem PC wo du testen kannst was wir dir posten? Und dann sollen sollen wir auch noch deine Codes testen? Ich fasse es nicht! |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Takashi Kenshin, ich bin bemüht jedem hier und da auf die Sprünge zu helfen, aber du hast anscheinend nichtmal das sehr einfache Beispiel verstanden. Du musst dein Wert zuerst durch die Gittergröße teilen und dann wieder um den selben Wert multipizieren. Das bewirkt folgendes:
Eine Integerzahl kann keine Kommastellen speichern. Daher werden diese abgeschnitten oder fallen einfach weg. Multiplizierst du nun den 'verstümelten' Wert mit dem selben Teilerwert, so erscheint ein Wert, der nur in Schritten des vielfachen des Ursprungswertes hat. Komisch zu erklären... Du kannst also deine Koordinaten mit dieser Methode damit einrastern. Was dein Beispiel angeht, so musst du also deine Mauskoordinaten zuvor teilen und dann wieder multiplizieren. Es empfielt sich die Mauskoordinaten (wegen anderer Gründe) in eine Variable am Anfang der Schleife zwischen zu speichern. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Takashi Kenshin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habe nicht gesagt ihr sollt meinen code testen.
und ich mache das grundsätzlich so das wenn ich nicht daheim seuin kann ich mir überlege wie ich etwas machen möchte und dann beim nächsten mal wenn ich an meinen pc komme asprobiere. ähmm die 0 + 44 dachte ich eigentlich für die strecke 0 bis 44 aber ist jetzt klar 0 + 44 = 44 Zitat: du musst dann nur von 100 bis 100+ 10 auf x und das gleiche auf y abfragen, wenn die maus in dem kästchen ist dann soll halt rect 100,100,10,10 gemacht werden solange die maus dort ist.
hattest du ja auch so geschrieben ![]() |
||
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln. |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Lad Dir doch für den anderen Rechner die Demo runter, das hab ich auf dem Rechner meiner Mutter auch gemacht ![]() |
||
Play Satyr! |
Takashi Kenshin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo. Ich hab jetzt ein Gitternetz eingebaut und hab jetzt die frage wie man dem programm sagen kann, das er nach einem MouseHit(1) in dem Quadrat wo ich mit der maus geklickt habe ein input erwarten soll?
Bis her ging der input dann nur im ersten kästchen auch wenn ich wo anders hinklickte. |
||
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln. |
![]() |
flona |
![]() Antworten mit Zitat ![]() |
---|---|---|
ql:Locate
Das sollte dein Problem lösen ![]() |
||
www.Dreier-Florian.kilu.de
Intel Core 2 Quad Q9400 | Zotac 9800GT | 4GB RAM | 1TB HDD | Windows 7 Professional 32bit |
![]() |
DerHase |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 320,240,0,2
While Not KeyHit(1) If RectsOverlap (MouseX(), MouseY(),1 ,1, 100, 100, 50, 25) Color 255, 0, 0 Else Color 0, 255, 0 End If Rect 100, 100, 50, 25 Flip:Cls Wend |
||
Play Satyr! |
Takashi Kenshin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
also schaut euch das an schon ziemlich weit ![]() Code: [AUSKLAPPEN] AppTitle "Takashi Sudoku" Graphics 600, 400, 32, 2 ClsColor 150, 0, 0 Cls SetBuffer BackBuffer() SetFont LoadFont ("Arial", 38, 1, 0, 0) Global Spielfeld = LoadAnimImage ("Sudoku.bmp", 44, 44, 0, 81) Global Zahlenfeld = LoadAnimImage ("Zahlenfeld.bmp", 44, 44, 0, 9) Dim Zahlen(8,8) Repeat Cls FELDER() GITTERNETZ() ZAHLENFELD() ZAHLENEINGEBEN() ZAHLENUPDATE() Flip Until KeyHit(1) Function FELDER() j = 0 For i = 0 To 352 Step 44 For i2 = 0 To 352 Step 44 DrawImage Spielfeld, i2, i, j j = j + 1 Next Next g = 0 For h = 264 To 354 Step 44 For h2 = 440 To 528 Step 44 DrawImage Zahlenfeld, h2, h, g g = g + 1 Next Next End Function Function ZAHLENFELD() Color 0, 0, 0 a = 1 For c = 266 To 356 Step 44 For b = 453 To 541 Step 44 Text b, c, a a = a + 1 Next Next End Function Function GITTERNETZ() MX = MouseX() MY = MouseY() XVGitter = (MX/44) * 44 YVGitter = (MY/44) * 44 Color 150, 0, 0 Rect XVGitter, YVGitter, 44, 44, 1 End Function Function ZAHLENEINGEBEN() If MouseHit(1) Then a = MouseX() / 44 b = MouseY() / 44 If a < 9 And b < 9 Then Zahlen (a, b) = Int (Chr (WaitKey())) EndIf End Function Function ZAHLENUPDATE() For i = 0 To 8 For i2 = 0 To 8 If Zahlen(i, i2) <> 0 Then Text i * 44 + 12, i2 * 44 + 5, Zahlen(i, i2) FlushMouse : FlushKeys Next Next End Function nur ein problem ich kann die zahlen nicht auch mit dem numpad eingeben warum? eigentlich ist doch waitkey für ASCII codes oder? |
||
Das Exponenzielle Volumen subterraner Agrarprodukte, steht in reziproker Relation zur geistigen Kapazität des kultivierenden Agronoms. Oder Kurz gesagt: Der dümmste Bauer hat die dicksten Kartoffeln. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group