Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Umschauen mit der maus? (https://www.delphipraxis.net/31523-umschauen-mit-der-maus.html)

SiCkN3sS 10. Okt 2004 19:24


Umschauen mit der maus?
 
Hallo,

ich fange gerade erst an mit OpenGl und habe in ner unit names movement vorerst nur eine Procedure die es ermöglichen soll sich mit der Maus umzuschauen. Fehler beim Compilieren erhalte ich nicht. Allerdings passiert auch nichts wenn man die Maus bewegt.

Evtl. könnt ihr mir ja weiterhelfen. Hier ist ersteinmal der code der movement.pas:

Delphi-Quellcode:
unit movement;

interface

uses openGl,windows,glaux;

function mytilt():glFloat;
function myhead():glFloat;

implementation

 var
  mpos   : TPoint;
  MouseSpeed : Integer = 7;
  Tilt : glFloat;
  Heading : glFLoat;

Procedure look_around;
BEGIN
   GetCursorPos(mpos);
   SetCursorPos(400,300);
   Heading := Heading + (mpos.x - 400) / 100 * MouseSpeed;
   Tilt := Tilt-(300-mpos.y)/100 * MouseSpeed;
   if Tilt > 60 then Tilt :=60;
   if Tilt < -60 then Tilt :=-60;
END;

function mytilt():glFloat; BEGIN look_around; Result := tilt; END;
function myhead():glFloat; BEGIN look_around; Result := Heading; END;


end.
Die beiden Funktionen rufe ich dann folgender maßen in einer anderen datei auf (movement ist via uses eingebunden):

Delphi-Quellcode:
procedure TForm1.Draw;
begin
   glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT);
   glShadeModel(GL_SMOOTH);
   glCullFace(GL_BACK);
   glENABLE(GL_Normalize);
   glLoadIdentity;
   glRotatef(mytilt,1,0,0);
   glRotatef(myhead,0,1,0);
   glCallList(SkyBox);
   SwapBuffers(wglGetCurrentDC);
end;
Leider weiß ich nicht was ich falsch mache.

Gruß Sick

flomei 10. Okt 2004 19:27

Re: Umschauen mit der maus?
 
Entweder denke ich gerade falsch oder ich sehe wirklich nicht wo "look_around" aufgerufen wird...

MFG Florian :hi:

SiCkN3sS 10. Okt 2004 19:32

Re: Umschauen mit der maus?
 
look_around wird in den functionen innerhalb der movement.pas aufgerufen. Diese übergeben die Variablen tilt bzw head.

könnte es daran liegen das ich das programm nicht im Fullscreen laufen lasse??

Fubar 10. Okt 2004 19:48

Re: Umschauen mit der maus?
 
> procedure TForm1.Draw;

Ist das die "OnDraw" Methode? Wenn ja, versuch mal am Ende ein "Invalidate" einzubauen.

SiCkN3sS 10. Okt 2004 19:52

Re: Umschauen mit der maus?
 
Invalidate bringt leider keine Lösung des Problems. Jetzt flimmert die Form grau und in den Texturen der Skybox.

Trotzdem danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz