Aktuelle Zeit: 22.05.2013 13:34

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Kamera mit Kollision
BeitragVerfasst: 05.04.2012 15:03 
Offline
Benutzeravatar

Registriert: 16.01.2012 16:38
Ich programmiere gerade einen FPS und bin auf ein Problem gestoßen.

Mit MoveCamera(...) lässt sich die Camera bewegen, wenn man jetzt die
Kamera dreht, dreht sich das "Bewegungsfeld" mit, so dass die Kamera
mit einer Bewegung auf der Z-Achse immer nach vorne bewegt wird.

Bei einem Entity/Node/... ist das aber nicht so. Das "Bewegungsfeld"
bleibt immer gleich.

Um Kollisionen für die Kamera zu bekommen binde ich sie an ein Entity
und bewege das ganze dann so:

Code:
MoveEntity(...)
LocateCamera(x,EntityX(...),EntityY(...),EntityZ(...))


Mit dieser Methode kann man dann das ganze aber nur global, also
nach dem festen "Bewegungsfeld" bewegen.

Jetzt die Frage:

Kann ich es irgendwie machen, dass ich Entity und Kamera nach dem
"Kamera-Schema" bewege und trotzdem die Kollisionen habe?


Danke im Vorraus

_________________
MfG Abraham

====================
Abraham Programs
Virtual Cookbook


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera mit Kollision
BeitragVerfasst: 11.04.2012 10:12 
Offline
Benutzeravatar

Registriert: 16.01.2012 16:38
Da kann mir echt keiner helfen?

_________________
MfG Abraham

====================
Abraham Programs
Virtual Cookbook


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera mit Kollision
BeitragVerfasst: 11.04.2012 19:59 
Offline
Benutzeravatar

Registriert: 12.11.2008 19:31
Soweit ich weis müsstest du dafür die koordinaten für die Bewegung selber Berechnen.

Also z.b. so:
Code:
X = Cos(Winkel) * Distanz
Z = Sin(Winkel) * Distanz
MoveEntity(Entity,X,0,Z)


Dies wäre eine Lösung für die Bewegung im 2 Dimensionalen Bereich, für die Höhe gibts dann auch noch eine Formel,
die allerdings mein Wissen übersteigt.

Anders könntest du machen indem zu zuerst die Kamera bewegst und dann einfach den Unterschied zur alten Kamera position berechnest um das Entity um diesen Wert zu bewegen:

Code:
OldX = CameraX(Camera)
OldY = CameraY(Camera)
OldZ = CameraZ(Camera)
MoveCamera(Camera,MoveX,MoveY,MoveZ)
NewX = CameraX(Camera)
NewY = CameraY(Camera)
NewZ = CameraZ(Camera)
DifX = NewX - OldX
DifY = NewY - OldY
DifZ = NewZ - OldZ
MoveEntity(Entity,DifX,DifY,DifZ)


Ich hoffe natürlich das, dass ganze jetzt auch funktioniert, da ich nicht viel mit der Physic Engine von PB zu tun habe.

_________________
Purebasic 5.10 | Kubuntu 12.04 (64 bit) | Opera 12.01 | Nvidia GT 9800
Xubuntu 12.04 (64 bit) | Intel HD Graphis (Onboard)


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Kamera mit Kollision
BeitragVerfasst: 12.04.2012 12:45 
Offline
Benutzeravatar

Registriert: 16.01.2012 16:38
DANKE!!!!

Jetzt läufts!

_________________
MfG Abraham

====================
Abraham Programs
Virtual Cookbook


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye