![]() |
Re: OpenGL bewegen von Objekten geht schief
ich hab keine ahnung woran das liegt.
hier die Tastaturabfrage:
Delphi-Quellcode:
ich hab auch den quellcode oben gepostet^^ wenn du noch mehr wissen willst, oder frag einfach nach^^
// Tasten
if Getkeystate(VK_LEFT) < 0 then if xk > -950 then begin xk:=xk-5; xap:=0.5; end; if Getkeystate(VK_RIGHT) < 0 then if xk < 950 then begin xk:=xk+5; xap:=-0.5; end; if Getkeystate(VK_UP) < 0 then If zk >-950 then begin zk:=zk-5; zap:=0.5; end; if Getkeystate(VK_DOWN) < 0 then If zk < 950 then begin zk:=zk+5; zap:=-0.5; end; Zitat:
Zitat:
|
Re: OpenGL bewegen von Objekten geht schief
Delphi-Quellcode:
Sieht jetzt zwar nicht so schön aus, aber meistens mache ich es so ähnlich und es funktioniert ;)
var
rotX, rotY, rotZ, transX, transY, transZ, TimeFactor: Single; StartTime, LoopTime: Integer; //... procedure Render; begin LoopTime := gettickcount-starttime; TimeFactor := LoopTime*0.00000000001+1; StartTime := gettickcount; //keys if Active = True then begin if getasynckeystate(vk_down) < 0 then rotx := Rotx + 1*(TimeFactor); if getasynckeystate(vk_up) < 0 then rotx := Rotx - 1*(TimeFactor); if getasynckeystate(vk_left) < 0 then roty := Roty - 1*(TimeFactor); if getasynckeystate(vk_right) < 0 then roty := Roty + 1*(TimeFactor); if getasynckeystate(ord('D')) < 0 then transx := transx - 0.01*(TimeFactor); if getasynckeystate(ord('A')) < 0 then transx := transx + 0.01*(TimeFactor); if getasynckeystate(ord('W')) < 0 then transy := transy - 0.01*(TimeFactor); if getasynckeystate(ord('S')) < 0 then transy := transy + 0.01*(TimeFactor); if (getasynckeystate(ord('Q')) < 0) and (transz + 0.01*TimeFactor > 0) then transz := transz + 0.01*(TimeFactor); if (getasynckeystate(ord('E')) < 0) and (transz - 0.01*TimeFactor > 0) then transz := transz - 0.01*(TimeFactor); if getasynckeystate(vk_prior) < 0 then rotz := rotz + 1*(TimeFactor); //Bild auf if getasynckeystate(vk_next) < 0 then rotz := rotz - 1*(TimeFactor); //Bild ab if getasynckeystate(ord('R')) < 0 then begin rotx := 0; roty := 0; rotz := 0; transx := 0; transy := 0; transz := 1; end; if rotx > 360 then rotx := rotx - 360; if roty > 360 then roty := roty - 360; if rotz > 360 then rotz := rotz - 360; end; //... glTranslatef(0,0,-2); gltranslatef(transx,transy,0); glRotatef(Rotx,1,0,0); glRotatef(Roty,0,1,0); glRotatef(Rotz,0,0,1); //... Haus und Würfel zeichnen end; Der 'TimeFactor' bewirkt übrigens, dass sich bei unterschiedlichen Frameraten alles immernoch genauso schnell bewegt. |
Re: OpenGL bewegen von Objekten geht schief
meine These ist
der render falsch es ist immernoch aber jetzt hab ich das gefühl das der das falsch render. ich hab jetzt deins eingebaut. aber das sieht mir noch so aus wenn ich von oben schaue und drehe japp funktioniert in jeder position wo der würfel das haus berührt ist der würfel hinter dem haus. aber warum ? muss noch eine einstellung geändert werden? |
Re: OpenGL bewegen von Objekten geht schief
Ich verstehe nicht ganz, was du meinst. Ist der Würfel vielleicht so nah an der Kamera, dass er wieder hinter dem Betrachter ist?
Vielleicht lädtst du dein Programm einfach mal hoch... |
Re: OpenGL bewegen von Objekten geht schief
Liste der Anhänge anzeigen (Anzahl: 1)
oben ist das ganze projekt zu finden einmal der gesamte quelltext(scoure.zip) und ganz oben die exe und die bilder ...
hier das aktuelle(bloß die exe also oben alles downloaden und die exe austauschen) |
Re: OpenGL bewegen von Objekten geht schief
'tschuldigung, hatte deine Anhänge vorher irgendwie übersehen :oops:
Das sieht wirklich merkwürdig aus. Ich habe mal versucht, das zu kompilieren, aber bei mir gibt es da irgendwo eine Zugriffsverletzung... Ich bin mir deshalb nicht sicher, ob es was bringt, aber hast du schonmal
Delphi-Quellcode:
probiert?
glEnable(gl_DEPTH_TEST);
![]() |
Re: OpenGL bewegen von Objekten geht schief
es klappt,
wegen diesen einen befehl, hat es mich zum verzweifeln gebracht :-D Zitat:
vielen dank Lumpiluk für deine Hilfe :thumb: :thumb: :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz