Grid bzw. Spalten und Reihen bei MouseOver
Übersicht

![]() |
GizehBetreff: Grid bzw. Spalten und Reihen bei MouseOver |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich brüte jetzt seit Stunden über einem kleinen Problem - das geübten Coder sicherlich rasch auffallen wird.
Im folgenden wird ein Grid erstellt - beim MouseOver soll das kleine blaue Rechteck exakt über einer Grid-Parzelle erscheinen - das tut es aber hier nicht - und ich weiß einfach nicht woran es liegt. Ausserdem sind sowohl 5 Spalten als auch 5 Reihen angegeben - aber das Rechteck bei x- und y- Bewegung der Maus darüber jeweils 6 Spalten! ![]() ![]() Kann mir jemand weiterhelfen, und meine Aufmerksamkeit vielleicht auf die geheime und mysteriöse Ursache lenken? ![]() Der Code: Code: Graphics 800,600,0,2 : SetBuffer Backbuffer() ; ---------------------------------------------------------- CONST ICONWIDTH% = 40 ; ICON BREITE CONST ICONHEIGHT% = 40 ; ICON HÖHE CONST TILEWIDTH% = 25 ; AUFLÖSUNG GRID CONST TILEHEIGHT% = 25 Global gColsTotal% Global gRowsTotal% ; Beginn der Editor-Fläche (für die Linien) CONST LineX = 360 CONST LineY = 120 ; ANZAHL COLS & ROWS gColsTotal% = 5 gRowsTotal% = 5 ; ------------------------------------------------- ; MAIN LOOP ; ------------------------------------------------- Repeat CLS CreateGrid ;Show & Move Mouse-Pointer over Grid If MouseX() > LineX AND MouseX() < LineX+TILEWIDTH*gColsTotal AND MouseY() > LineY AND MouseY() < LineY+TILEHEIGHT*gRowsTotal Then ; DRAW MARKER Color 192,192,255 x% = (MouseX() / TILEWIDTH) * TILEWIDTH ; So kriegt man die Spalte & Pixelposition raus in nem Tilebased Game y% = (MouseY() / TILEHEIGHT) * TILEHEIGHT Rect x,y,TILEWIDTH,TILEHEIGHT,0 Else ShowPointer EndIf Flip Until KeyHit(1) ; ------------------------------------------------- ; FUNCTION CREATE GRID ; ------------------------------------------------- Function CreateGrid() ; Draw Background-Fill COLOR 90,90,90 Rect LineX,LineY,TILEWIDTH*gColsTotal,TILEHEIGHT*gRowsTotal,1 ; Draw Grid-Lines COLOR 255,255,255 For i = 0 To gColsTotal For x = 0 To gRowsTotal ; Senkrechte Spalten erzeugen Line LineX+i*TILEWIDTH,LineY,LineX+i*TILEWIDTH,LineY+TILEHEIGHT*gRowsTotal ; Horizontale Reihen erzeugen Line LineX,LineY+x*TILEHEIGHT,LineX+TILEWIDTH*gColsTotal,LineY+x*TILEHEIGHT Next Next End Function |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Problem ist es das die tiles nicht bei 0
/0 anfangen sondern bei LineX und LineY Hier mal der angepasste Code Code: If MouseX() > LineX And MouseX() < LineX+TILEWIDTH*gColsTotal And MouseY() > LineY And MouseY() < LineY+TILEHEIGHT*gRowsTotal Then
; DRAW MARKER Color 192,192,255 x% = ((MouseX()- LineX)/ TILEWIDTH) * TILEWIDTH ; So kriegt man die Spalte & Pixelposition raus in nem Tilebased Game y% = ((MouseY()- Liney) / TILEHEIGHT) * TILEHEIGHT Rect x+ LineX,y+ Liney,TILEWIDTH,TILEHEIGHT,1 Else ShowPointer EndIf |
||
[BB2D | BB3D | BB+]
|
![]() |
Gizeh |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Rallimen, etwas verspätet meinen Dank für Deine Hilfe - Du hattest Recht! Danke für den Tipp ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group