Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Mi Jul 16, 2025 20:24

Foren-Übersicht » Programmierung » Einsteiger-Fragen
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Problem beim Bewegen/Drehen
BeitragVerfasst: Di Dez 27, 2005 19:44 
Offline
DGL Member

Registriert: Di Dez 27, 2005 19:34
Beiträge: 2
Hallo Leute,
ich bin ein ziemlicher Neuling und hab natürlich auch einige Probleme. Bisher konnte ich alle mit einwenig ausprobieren lösen, aber jetzt komm ich einfach nicht weiter.
Ich bewege mich mit den Pfeiltasten durch meine Landschaft.
Mitlerweile kann ich mich zwar auf der Stelle drehen, aber ich kann mich nicht mehr in eine bestimmte Richtung durch die Landschaft bewegen.
Hier ist meine Render-Prozedur, ich hoffe ihr könnt mir helfen.
Code:
  1.  
  2. procedure TGLForm.Render;
  3. var
  4.   x, y: integer;
  5. begin
  6.   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
  7.  
  8.   glEnable(GL_TEXTURE_2D);
  9.  
  10.   glMatrixMode(GL_PROJECTION);
  11.   glLoadIdentity;
  12.   gluPerspective(45.0, ClientWidth/ClientHeight, NearClipping, FarClipping);
  13.  
  14.   //========================================================
  15.   //xwinkel, ywinkel und entfernung sind globale variablen vom typ single
  16.  
  17.   if GetAsyncKeyState(VK_NUMPAD0)<>0 then
  18.     xwinkel:= xwinkel - VarFrames(0.5);
  19.   if GetAsyncKeyState(VK_NUMPAD1)<>0 then
  20.     xwinkel:= xwinkel + VarFrames(0.5);
  21.   if GetAsyncKeyState(VK_LEFT)<>0 then
  22.     ywinkel:= ywinkel - VarFrames(1.5);
  23.   if GetAsyncKeyState(VK_RIGHT)<>0 then
  24.     ywinkel:= ywinkel + VarFrames(1.5);
  25.   if GetAsyncKeyState(VK_UP)<>0 then
  26.     entfernung:= entfernung + VarFrames(0.3);
  27.   if GetAsyncKeyState(VK_DOWN)<>0 then
  28.     entfernung:= entfernung - VarFrames(0.3);
  29.  
  30.   //========================================================
  31.  
  32.   glMatrixMode(GL_MODELVIEW);
  33.   glLoadIdentity;
  34.  
  35.   glRotatef(xWinkel, 1, 0, 0);
  36.   glRotatef(ywinkel, 0, 1, 0);
  37.   glTranslatef(0, -3, entfernung);
  38.  
  39.   glTranslatef(XCount / -2, 0, 0);
  40.  
  41.   //========================================================
  42.   //Dieser Code ist hauptsächlich aus den Wiki-Tutorials
  43.  
  44.   for y:=0 to YCount-1 do
  45.   begin
  46.     glPushMatrix;
  47.     for x:=0 to XCount-1 do
  48.     begin
  49.       glBegin(GL_QUADS);
  50.         glTexCoord2f(x / XCount, (y+1) / YCount);
  51.         glVertex3f(0,  Map[x,y+1],  0);
  52.         glTexCoord2f(x / XCount,y / YCount);
  53.         glVertex3f(0,  Map[x,y],  1);
  54.         glTexCoord2f((x+1) / XCount,y / YCount);
  55.         glVertex3f(1,  Map[x+1,y],  1);
  56.         glTexCoord2f((x+1) / XCount,(y+1) / YCount);
  57.         glVertex3f(1, Map[x+1,y+1],  0);
  58.       glEnd;
  59.       glTranslatef(1,0,0);
  60.     end;
  61.     glPopMatrix;
  62.     glTranslatef(0,0,-1);
  63.   end;
  64.  
  65.   //========================================================
  66.  
  67.   SwapBuffers(DC);
  68. end;
  69.  
  70.  

_________________
Die gefährlichste Droge heißt Bahnhof!
Ein Zug und du bist weg.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Dez 28, 2005 00:56 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Im Wiki hat ANDI seine Kamera-Klasse reingestellt. Die könnte dir weiterhelfen:

http://wiki.delphigl.com/index.php/Kamera

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Dez 28, 2005 08:34 
Offline
DGL Member

Registriert: Di Dez 27, 2005 19:34
Beiträge: 2
Danke, werd ich mir mal anschaun.
Aber kann man das nicht auch anderst machen. :wink: Oder macht ihr dass alle so mit einer Kameraklasse.

_________________
Die gefährlichste Droge heißt Bahnhof!
Ein Zug und du bist weg.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Dez 28, 2005 09:04 
Offline
DGL Member
Benutzeravatar

Registriert: Do Dez 05, 2002 10:35
Beiträge: 4234
Wohnort: Dortmund
Es muss keine richtig echte Kameraklasse sein. Nur wenn eine gewisse Funktionalität eine entsprechende Größe erreicht hat, dann empfielt es sich meiste diese auszulagern oder sich ein sinvolles Objekt orientiertes Design auszudenken. Für eine Kamera mag das evtl. ein bisschen oversized sein aber das ist wohl Geschmackssache. Zu mal ich auch gestehen muss, dass ich bisher nie eine richtig echte Kameraführung in meinen Anwendungen brauchte.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi Dez 28, 2005 14:35 
Offline
Guitar Hero
Benutzeravatar

Registriert: Do Sep 25, 2003 15:56
Beiträge: 7810
Wohnort: Sachsen - ERZ / C
Programmiersprache: Java (, Pascal)
Bei meinem Advanced Atom Animator (den ich an der Uni entwickle LINK) hab ich auch keine Eigene Klasse. Es gibt nur eine Art Flugplan, welche meiner Kamera sagt wos hingehen soll, und wie sie zu schwenken hat. Bei meinen Spielen gabs immer eine relativ feste Ansicht.

_________________
Blog: kevin-fleischer.de und fbaingermany.com


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Foren-Übersicht » Programmierung » Einsteiger-Fragen


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 6 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.

Suche nach:
Gehe zu:  
cron
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]