Entwickler-Ecke

Multimedia / Grafik - GLScene: Welches Objekt befindet sich unter der Spielfigur


svenson08 - Mo 29.12.03 15:59
Titel: GLScene: Welches Objekt befindet sich unter der Spielfigur
Hallo,

ich habe folgendes Problem. Ich habe ein Spielfeld was aus mehreren Würfeln eine ebene Fläche bildet. Darüber rollt eine Kugel. Nun möchte ich wissen über welchem Würfel sich gerade die Kugel befindet. Leider weis ich nicht wie ich von der Kugel aus das Objekt darunter ermitteln kann.
Hat jemand eine Idee ?

Gruß Sascha


Andreas Pfau - Mi 31.12.03 17:06

Hallo,

na ja, du hast doch sicher einen Array der die Positionnen der Würfel speichert, oder...? Wenn die Würfel in einem Raster angeordnet sidn, sagen wir in X- und Y-Richtung, musst du nur die X- und Y-Pos der Kugen nehmen, und auf die Würfelpositionen umrechnen, und den nächstgelegenen Würfel dann nehmen! Dazu musst du die Position des Würfels runden...

Beispiel: Ein Würfel hat eine Kantenlänge von 5. Deie Kugel ist bei 11. Über welchem Würfel ist die Kugel (Der Nullpunkt der Würfel ist [0, 0]). Pseudocode:

Quelltext
1:
2:
3:
Würfel_in_X_Richtung = Kugel_X_Position / Würfel_X_Länge
Würfel_in_X_Richtung = 11 / 8 = 1,375
Würfel_in_X_Richtung = 2

Das Ergebnis ist mit Round() gerundet.

Ich hoffe, das war es was du wolltest...


svenson08 - Fr 02.01.04 10:29

Hallo ,

genau so hab ich es dann auch gemacht, ich dachte nur es gäbe eine andere möglichkeit ohne einen array zuverwenden.


Andreas Pfau - Fr 02.01.04 11:26

Hallo,

ja, es gibt GL-Picking, d.h. du fragst OpenGL welches Objekt bei [X, Y, Z] ist. Aber das ist noch komplizierter und Zeitaufwändiger (na ja, im Mikrosekundenbereich).

Wichtig ist natürlich, dass du als Kugelposition den Mittelpunkt angibtst, genauso bei den Würfeln gilt der Mittelpunkt, sonst sieht das nämlich am Ende recht komisch aus...