2D - Map speichern

Algorithmen, Sprachunabhängige Diskussionen zu Konzepten, Programmiersprachen-Design
nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: 2D - Map speichern

Beitrag von nufan » Do Mai 21, 2009 3:00 pm

Kerli hat geschrieben:'distleft' und 'distup' ist wahrscheinlich der aktuelle Offset oder?
Ja, hab ich auch geschrieben:
dani93 hat geschrieben:"distleft" und "distup" sind Member der Klasse und die Entfernungen vom linken bzw. oberen Rand, der durch das Scrollen in der Map entsteht.
Kerli hat geschrieben:Nur das Runden kannst du dir sparen, da bei einer Integerdivision sowieso alle Nachkommastellen abgeschnitten werden...
"Runden" ist vielleicht schlecht gesagt...
Ich will auf die letzte durch 32 teilbare Zahl kommen.
Beispiel:
Der User klickt auf Pixel 70/40.
Auf letzte durch 32 teilbare Zahlen: 64/32 (linkes obere Eck der Grafik in der grafischen Map)
Dann durch 32 dividieren: 2/1 (Position der Grafik im Vektor)
Das heißt die Grafik wird im Vektor auf den Index [2][1][layer] gespeichert.
32 weil eben alle Grafiken 32*32 Pixel groß sind.

Beim zeichnen der Map muss ichs umgekehrt machen, Position im Vektor mit 32 multiplizieren:

Code: Alles auswählen

        dest.x = i * 32;
        dest.y = j * 32;
        dest.w = 32;
        dest.h = 32;
Wobei i und j Zählvariablen für den Index des Vektors sind.

Benutzeravatar
Kerli
Beiträge: 1456
Registriert: So Jul 06, 2008 10:17 am
Wohnort: Österreich
Kontaktdaten:

Re: 2D - Map speichern

Beitrag von Kerli » Do Mai 21, 2009 3:14 pm

dani93 hat geschrieben:Ja, hab ich auch geschrieben:
Hab ich dann wohl übersehen. Dabei habe ich noch zwei mal darübergelesen. Das ist sicher das Wetter :P
dani93 hat geschrieben:Ich will auf die letzte durch 32 teilbare Zahl kommen.
Brauchst du diese Zahl auch wirklich? In deinem Beispiel brauchst du ja nur die durch 32 teilbare Zahl geteilt durch 32.
dani93 hat geschrieben:Der User klickt auf Pixel 70/40.
Wenn du jetzt beide Koordinaten teilst kommst du auf die gewünschten Koordinaten von 2/1.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)

OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: 2D - Map speichern

Beitrag von nufan » Do Mai 21, 2009 3:15 pm

Kerli hat geschrieben:
dani93 hat geschrieben:Ich will auf die letzte durch 32 teilbare Zahl kommen.
Brauchst du diese Zahl auch wirklich? In deinem Beispiel brauchst du ja nur die durch 32 teilbare Zahl geteilt durch 32.
dani93 hat geschrieben:Der User klickt auf Pixel 70/40.
Wenn du jetzt beide Koordinaten teilst kommst du auf die gewünschten Koordinaten von 2/1.
Hmmm... stimmt eigentlich :P
Integer-Divisionen haben auch Vorteile ;)

Antworten