Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

07.10.2012, 12:14

C++ Isometrischer Mausklick - Verständnisprobleme

Hallo Community!
Also, ich zeichne momentan eine kleine Iso-Map mit diesem Quellcode:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
for(int x=0;x<v2iSize.x;x++)
    {
        std::vector<CTile > temp;
        for(int y=0;y<v2iSize.y;y++)
        {
            float xPos = (float)(SCREEN_WIDTH/2-TILE_WIDTH/2+(TILE_WIDTH/2*x)-(TILE_WIDTH/2*y));
            float yPos = (float)(SCREEN_HEIGHT/2+(TILE_HEIGHT/2*x)+(TILE_HEIGHT/2*y)-(TILE_HEIGHT/2*v2iSize.x));
            CTile tile(txtTile,sf::Vector2f(xPos, yPos));
            temp.push_back(tile);
        }
        map.push_back(temp);
    }

Die Map wird perfekt dargestellt, doch seit gestern frage ich mich, wie ich das "Tilepicking" umsetzen soll. Wenn einer von euch eine Idee hat, würde ich sehr froh darüber sein, wenn er mir sie mitteilen+erklären könnte.

Vielen Dank

lg. denniro
Only God can judge me.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

07.10.2012, 12:19

Ist deine Karte "flach"? Wenn ja, dann könntest du die Mausposition einfach direkt in eine virtuelle Tilemap Position umrechnen. Ansonsten wäre vielleicht sowas ein guter Ansatz: http://www.gamedev.net/page/resources/_/…ight-maps-r2026

3

07.10.2012, 12:23

Ja die Karte ist noch "flach" und danke für diese Seite ;) Ich schau mal drüber und frage dann wieder, wenn ich etw. nicht verstande habe^^

lg. denniro
Only God can judge me.

4

07.10.2012, 15:45

Okey, ich habe es nun mit ner Mousemap gelöst ;)
Only God can judge me.

5

07.10.2012, 21:29

So ich habe nun im Internet folgende Rechnungen vorgefunden:

C-/C++-Quelltext

1
2
 int xCoord = static_cast<int>((mouseX*(TILE_HEIGHT/2) + mouseY*(TILE_WIDTH/2)) / (TILE_WIDTH*TILE_HEIGHT)/2));
 int yCoord = static_cast<int>((mouseX*-(TILE_HEIGHT/2) + mouseY*(TILE_WIDTH/2)) / (TILE_WIDTH*TILE_HEIGHT)/2));

Mit diesen kann man die xCoord und yCoord eines IsoTiles herausfinden, hat einer ne Ahnung wie das gehen soll?
Wenn es so wäre, würde ich mich über eine ausführliche Erklärung freuen!
Danke!

lg. denniro
Only God can judge me.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »denniro« (08.10.2012, 23:45)


6

08.10.2012, 23:30

Hat jemand eine Ahnung? :S

lg. denniro
Only God can judge me.

Werbeanzeige