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

Aktuelle Zeit: Mi Jul 09, 2025 00:01

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



Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Sa Jul 26, 2003 11:39 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
Wie kann ich mich mit den Tasten rechts und links in einen 3D Raum bewegen. So das ich auch immer nach rechts\links gehe (nicht drehen).


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jul 26, 2003 11:42 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Nach Rechts strafen:
<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>Pos.x := Pos.x-(sin((yRot-<span class='integer'>90</span>)*PIOver180));
Pos.z := Pos.z+(cos((yRot-<span class='integer'>90</span>)*PIOver180));
</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

Nach links :
<!--pas--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Delphi-Source </td></tr><tr><td id='CODE'><!--pas1--><pre>Pos.x := Pos.x+(sin((yRot-<span class='integer'>90</span>)*PIOver180));
Pos.z := Pos.z-(cos((yRot-<span class='integer'>90</span>)*PIOver180));</pre><!--pas2--></td></tr></table><span class='postcolor'><!--pas3-->

_________________
www.SaschaWillems.de | GitHub | Twitter | GPU Datenbanken (Vulkan, GL, GLES)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Sa Jul 26, 2003 11:44 
Offline
DGL Member

Registriert: Sa Sep 21, 2002 21:32
Beiträge: 346
Wohnort: Eilsum (Nahe Emden)
Wenn du schon vor und zurück gehen kannst, sollte das an sich kein Problem sein...
Angenommen zu gehst so vor bzw. zurück:

Code:
  1.  
  2. if getasynckeystate(vk_up) <> 0 then
  3. begin
  4. my_x := my_x-0.4*sin(degtorad(rot))*timefactor;
  5. my_y := my_y+0.4*cos(degtorad(rot))*timefactor;
  6. end;
  7.  
  8. if getasynckeystate(vk_down) <> 0 then
  9. begin
  10. my_x := my_x+0.4*sin(degtorad(rot))*timefactor;
  11. my_y := my_y-0.4*cos(degtorad(rot))*timefactor;
  12. end;
  13.  


(rot ist die Rotation meiner Spielfigur.... der Wert 0.4 ist für die Speed....)
Dann würde ich so seitwärtz gehen:

Code:
  1.  
  2. if getasynckeystate(vk_right) <> 0 then
  3. begin
  4. my_x := my_x+0.2*sin(degtorad(rot-90))*timefactor;
  5. my_y := my_y-0.2*cos(degtorad(rot-90))*timefactor;
  6. end;
  7.  
  8. if getasynckeystate(vk_left) <> 0 then
  9. begin
  10. my_x := my_x+0.2*sin(degtorad(rot+90))*timefactor;
  11. my_y := my_y-0.2*cos(degtorad(rot+90))*timefactor;
  12. end;
  13.  


(Es ist ein Original-Source aus einem meiner Programme... daher auch hier der Konstantwert "0.2" - seitwärz laufen geht halt etwas langsamer als vor ode zurück....)

[Edit]: Grrr... SoS war wieder schneller :-(

_________________
Es sind immer die guten,
welche zu früh von uns gehen müssen...

Meine bislang 13 Open Gl - Tuts findet ihr auf www.dcw-group.net
Neu! Ein großer Teil der Demos nach Kylix übersetzt!


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


Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 2 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:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.008s | 17 Queries | GZIP : On ]