Habe ein weiteres problem! Hm...das wird schwierig zu erklären. Nagut dann werde ich es mal probieren:
Ich habe mir eine Map-Datei erstellt. Und habe eine Figur. Wenn man mit der Maus irgendwo hinklickt, geht die Figur zu diesem Punkt. Aber mit der Z Achse gibt es irgendwie ein problem. Wenn die Figur Z.b. Unten Links ist und man klickt oben Rechts hin, geht die Figur nur die X Achse und nicht die Z Achse. Das gleiche ist wenn die Figur unten rechts ist und man klickt oben links hin. Wenn die Figur aber oben ist und man klickt irgendwo nach unten rechts oder links geht es! Am Code direkt kann es nicht liegen. Habe es mit einem Button getestet da ging es. Hier mal der Code den ich habe:
Code:
//Z Achse
IfNot(SPosZ=EPosZ)then
Begin
If ZN=Falsethen
SPosZ:=SPosZ+3
else
SPosZ:=SPosZ-3;
end;
//X Achse
IfNot(SPosX=EPosX)then
Begin
If XN=Falsethen
SPosX:=SPosX-3
else
SPosX:=SPosX+3;
end;
PositionGL(SPosX,SPosZ);
If(SPosZ=EPosZ)And(SPosX=EPosX)then
Timer1.enabled:=false;
Dieser Code steht in einem TTimer. Interval steht auf 30. SPosX und SPosZ sind die Start Punkte. EPosX und EPosZ sind die Endpunkte. XN und ZN sind Boolean Variablen. PositionGL ist eine Prozedure die die Maus Koordinaten umrechnet in OpenGL Koordinaten. Im OnCreate:
Code:
SPosX:=396div3*3;
SPosZ:=287div3*3;
Und in OnMouseDown steht folgendes:
Code:
EPosX:=X div3*3;
EPosZ:=Y div3*3;
If SPosX>EPosX Then
XN:=False
else
XN:=True;
If SPosZ<EPosZ Then
ZN:=False
else
ZN:=True;
Timer1.Enabled:=True;
Als Figur habe ich als Test einen Quad:
Code:
glBindTexture (Gl_TEXTURE_2D, Texture[2]);
glBegin(GL_QUADS);
glTexCoord (0,0); glVertex3f(px+30,5,pz);
glTexCoord (0,1); glVertex3f(px+30,5,pz+5);
glTexCoord (1,1); glVertex3f(px+30,-1.0,pz+5);
glTexCoord (1,0); glVertex3f(px+30,-1.0,pz);
glEnd;
PX und PZ sind Variablen von Type TGLFloat. Diese Variablen enthalten die GL Koordinaten die die Prozedure "PositionGL" bzw. GluUnProject zurückgibt. Was mache ich falsch? Woran kann das liegen, dass wenn die Figur unten ist und man klickt irgendwo oben, dass die Figur sich nicht nach oben bewegt?
Mitglieder in diesem Forum: 0 Mitglieder und 11 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.