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

Aktuelle Zeit: Di Jul 15, 2025 15:14

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



Ein neues Thema erstellen Auf das Thema antworten  [ 7 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Kamera
BeitragVerfasst: Di Aug 19, 2003 12:59 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
Ich habe mir einen kleinen Editor geschrieben, soweit funktioniert alles, das einzige was noch nicht so richt funktioniert ist die Kameraführung. Wenn ich die Maus über mein Fenster bewege z.b nach oben soll sich meine "Level" :wink: zum Vordergrund schieben (Z-Achse). Wenn ich nach links mit der Maus gehe, soll sich mein "Level" nach rechts bewegen.
mein code
Code:
  1.  
  2. procedure TfrmMain.PanelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
  3. var
  4.   NMPos : TPoint;
  5. begin
  6.   if FMouseClick then begin
  7.     NMPos := Mouse.CursorPos;
  8.     if OMPos.X < NMPos.X then begin
  9.       Position.x := Position.x-(sin((yRot-90)*PIOver180))*0.2;
  10.       Position.z := Position.z+(cos((yRot-90)*PIOver180))*0.2;
  11.     end;
  12.     if OMPos.X > NMPos.X then begin
  13.       Position.x := Position.x+(sin((yRot-90)*PIOver180))*0.2;
  14.       Position.z := Position.z-(cos((yRot-90)*PIOver180))*0.2;
  15.     end;
  16.     if (OMPos.Y>NMPos.Y) and (xrot>-60) then begin
  17.       Position.x := Position.x-sin(-yrot*piover180)*0.2;
  18.       Position.z := Position.z-cos(-yrot*piover180)*0.2;
  19.     end;
  20.     if (OMPos.Y<NMPos.Y) and (xrot<60) then begin
  21.       Position.x := Position.x+sin(-yrot*piover180)*0.2;
  22.       Position.z := Position.z+cos(-yrot*piover180)*0.2;
  23.     end;
  24.  
  25.     NMPos := Mouse.CursorPos;
  26.     OMPos := NMPos;
  27.   end;
  28.   mx := x;
  29.   my := y;
  30. end;
  31.  

Aber so richtig funktioniert das nicht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 19, 2003 15:00 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Wir wärs denn wenn du dein Problem auch konkretisieren würdest? :evil:
So kann dir ja keiner weiterhelfen...das ist ja fast so wie wenn sagen würdest "Ich hab ein Programm geschrieben, aber es geht nicht.Bitt helft mir...".

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 19, 2003 15:38 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
Wenn ich mit meiner Maus über die Form fahre bewegen sich die objekte viel zustark. Brauche nur leicht nach links fahren und die Objekte schlagen stark nach rechts aus. Habe auch schon die werte geändert von 0.2 auf 0.02 sieht auch nicht grade gut aus. Da wollte ich nur mal fragen ob man das besser machen könnte oder ob ich was falsch gemacht habe.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 19, 2003 15:40 
Offline
DGL Member
Benutzeravatar

Registriert: Mo Sep 23, 2002 19:27
Beiträge: 5812
Programmiersprache: C++
Nein, anders als über nen Faktor kannst du das nicht machen, da dein OnMouse-Event ja von Windows aufgerufen wird und du da kann keine Kontrolle drüber hast.

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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 19, 2003 15:45 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
kann es denn sein das ich was an der Berechnung falsch habe, meine Objekte bewegen sich nicht wie sie sollen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 19, 2003 17:14 
Offline
DGL Member
Benutzeravatar

Registriert: Di Dez 03, 2002 22:12
Beiträge: 2105
Wohnort: Vancouver, Canada
Programmiersprache: C++, Python
Hi,

ich würde sagen deine Berechnung ist verkehrt... also nicht falsch von der Formel etc, sondern einfach absolut unpassend für das was du willst ;)

Versuch's mal auf die art:
Code:
  1. Position.X:=Position.X + ((X-MouseX)/100);
  2. Position.Y:=Position.Y - ((Y-MouseY)/100);
  3. MouseX:=X;
  4. MouseY:=Y;


Au'revoir,
Aya~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Aug 19, 2003 17:46 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 08, 2003 15:49
Beiträge: 266
Wohnort: Aachen
danke :D , habs ...


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 7 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.011s | 17 Queries | GZIP : On ]