Kleine Denkblockade(2D MapEditor)

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

 

Inso

Betreff: Kleine Denkblockade(2D MapEditor)

BeitragSa, Jan 21, 2012 1:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu, ich programmier grad an nem kleinen minispiel, zur ablenkung.
nun wollt ich dazu passend einen kleinen mapeditor schreiben, hab aber ein problem beim auswählen der tiles.

Wenn man mit der rechten maustaste klickt, zeigt sich das komplette Tileset links oben auf dem screen(480x256, tiles a 16x16).
Nun weiß ich nicht genau wie ich es anstelle, dass ich einer variable bei Mausklick den frame-wert des jeweils ausgewählten tiles übergebe, also quasi per klick auswähl welches tile ich am mauszeiger hängen haben will.

Code: [AUSKLAPPEN]
Function chosetile()
Local currentTile = 0 ' Counter für die Schleife
If chosetiletrigger = 1 ' Benutzer möchte Tileset sehen(Rechtsklick)

   For n = 0 To 15 ' Y
   For m = 0 To 29 ' X
   
   
      DrawImage tiles0,m*16,n*16,currentTile

      currentTile  = currentTile +1 ' Tile Counter erhöhen
      

   Next
   Next

EndIf
End Function


Ich hab das Gefühl es ist megaeinfach zu lösen, aber hab lange nix mehr mit 2D gemacht, und steh grad voll auf dem Schlauch, hoffe jemand kann mir helfen Smile

Edit: Titel bearbeitet,.. man ich brauch Schlaf.. :/

Midimaster

BeitragSa, Jan 21, 2012 1:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt mehrere Wege:


Am leichtesten zu verstehen: Die gleiche Methode wie du sie zeichnest:

BlitzBasic: [AUSKLAPPEN]
Print "geklicktes Tile=" + WoMaus()

Function WoMaus%()
MausX=MouseX()
MausY=MouseY()

For n = 0 To 15 ' Y
For m = 0 To 29 ' X
If ( MausX> (m*16) ) And ( MausX< (m*16+16) )
If ( MausY> (n*16) ) And ( MausY< (n*16+16) )
Return CurrentTile
EndIf
EndIf

currentTile = currentTile +1 ' Tile Counter erhöhen
Next
Next
End Function



Kürzer, aber auch richtig:

BlitzBasic: [AUSKLAPPEN]
Print "geklicktes Tile=" + WoMaus()

Function WoMaus%()
M%=Int(MouseX()/16)
N%=Int(MouseY()/16)

currentTile = N*16+M
Return CurrentTile
End Function
 

Inso

BeitragSa, Jan 21, 2012 1:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Sauber, im nachhinein hätt ich selbst drauf kommen können Smile
Vielen Dank, funktioniert so wie es soll Smile

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group