Hallo Leute!
Ich habe ein Problem: Habe in OpenGl eine 3D-Ansicht einer Karte für ein Spiel entwickelt, möchte aber gerne Wissen, welcher Koordinate auf dem Spielfeld es entspricht wenn ich auf dem Bildschirm an eine bestimmte Position klicke.
Meine Karte sieht folgendermaßen aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| type TGameMap = class public Field : array[-1..MAXMAPSIZEX,-1..MAXMAPSIZEY] of record Height: Smallint; end; MapSizeX, MapSizeY : Byte; Camera : record x,y,z : single; xa,ya,za : single; end; end; |
Field.Height speichert die Höhen jedes Eckpunktes
MapSizeX/Y Ist die aktuelle Größe der Karte
Camera speichert die aktuelle Kameraposition (x,y,z) und den Blickwinkel auf das Spielfeld (xa,ya,za)
Wie kann ich bei einem Mausklick ermitteln wo auf dem Spielfeld geklickt wurde?
ich benutze folgende Perspektive:
Delphi-Quelltext
1:
| gluPerspective(60, ClientWidth/ClientHeight, 0.01, 512); |
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt.