Autor Beitrag
Nagelbrett
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75



BeitragVerfasst: Do 03.06.04 21:19 
Hi, ich arbeite gerade an einem kleinen Spiel (RPG), für das ich ein um 45° gedrehtes Spielfeld benutze. Es wird also auch in Form einer Raute auf den Bildschirm gezeichnet. Das hab ich wie folgt angestellt:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
for i := 0 to mapwidth-1 do
 for j := 0 to mapheight-1 do
  begin
   //[...]

   Rect.x := (i*16)+mx+(j*16);
   Rect.y := my-(i*8)+(j*8);
   SDL_UpperBlit(ImageList[tile], nil, Screen, @Rect);
  end;

(mx und my sind nur Konstanten die die Position des Spielfeldes innerhalb des Screens bestimmen.)

Ich möchte nun allerdings bei einem Mouseklick auch irgendwie herausbekommen, in welches "Tile" der User denn nun geklickt hat, und genau da liegt das Problem.
Wie kann ich aus den Mousecursor-Koordinaten nun Koordinaten für mein Karten-Array bekommen?

Ich hab schon versucht einfach die 2 Formeln nach j und i aufzulösen, also quasi die Berechnung einfach rumzudrehn... aber irgendwie kam dabei nur Müll raus :? Kann mir einer helfen?