Camera ausrichten!

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Iguan

Betreff: Camera ausrichten!

BeitragSa, Feb 11, 2006 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Wie kann ich meine Cam annähernd auf ein objekt ausrichten?

ich habs schonmal mit AlignToVector versucht, aber in meiner BB3D-Version, die ich seit gestern habe, kann man bei diesem Befehl kein Tempo mehr angeben!

Und PointEntity geht ja auch nicht, da die cam dann sofort, ohne verzögerung auf das Objekt zeigen würde... Rolling Eyes
 

Ava

Gast

BeitragSa, Feb 11, 2006 19:11
Antworten mit Zitat
Pseudo Code


Code: [AUSKLAPPEN]
.set_camera_target

[Camera Winkel speichern]

PointEntity Camera, Target

[Camera Zielwinkel Speichern]
[Camera Winkel zurücksetzen]


.mainloop (handle_camera)

[Camera langsam von Winkel auf Zielwinkel ausrichten]

Iguan

BeitragSa, Feb 11, 2006 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
DANKE! Idea ach, und ich dachte, dass man dazu einen Befehl verwenden kann!

Noch 3 weitere Fragen:

1.
Wieso kann ich bei meiner BB3D-Vollversion kein Tempo beim Befehl
ALIGNTOVECTOR mehr angeben?


2.
Gibt es das bei eurer Version auch nicht mehr?


3.
Gibt es einen Befehl, der die Winkel zwischen 2 objekten berechnet, oder muss man da auf den guten alten Pythagoras zurückgreifen?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Feb 11, 2006 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu 1.) Also bei geht's... Probier doch mal selbst. Vielleicht hattest du die Parameter verwechselt (ist mir auch schon mal passiert).Code: [AUSKLAPPEN]
Graphics3D 640,480,16,2
SetBuffer BackBuffer()
camera=CreateCamera()
light=CreateLight()
PositionEntity camera,0,0,-5
RotateEntity light,90,0,0

cylinder=CreateCylinder(20)
sphere=CreateSphere()
ScaleEntity cylinder,1,3,1
PositionEntity cylinder,0,0,5
EntityAlpha sphere,.8
EntityColor sphere,255,100,100

While Not KeyHit(1)
   If KeyDown(200) Then MoveEntity sphere,0,.1,0
   If KeyDown(208) Then MoveEntity sphere,0,-.1,0
   If KeyDown(203) Then MoveEntity sphere,-.1,0,0
   If KeyDown(205) Then MoveEntity sphere,.1,0,0
   AlignToVector cylinder,EntityX(sphere),EntityY(sphere),-5,2,.01
   RenderWorld
   Flip
Wend
End


Zu 2.) Siehe Punkt 1

Zu 3.) ql:Atan2
 

HW

BeitragSa, Feb 11, 2006 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit Pythagoras kannst du übrigens nur Seitenlängen und keine Winkel ausrechnen. Für Winkel benötigst du trigonometrische Funktionen. In diesem Fall, wie oben schon von hectic annähernd erwähnt, benötigst du den Tangens.

Iguan

BeitragSa, Feb 11, 2006 20:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, danke für deine Antwort!

Wenn ich dein code ausführe, kommt der Fehler "Too many parameters"
und dies bei der Zeile mit ALIGNTOVECTOR.. Crying or Very sad

ich kapiers nicht... in der BB3D-Demoversion konnte ich das Tempo noch angeben.. jetzt mit der Vollversion nicht mehr! Sad Evil or Very Mad
 

HW

BeitragSa, Feb 11, 2006 20:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich (mit B3D Version 1.94) hab damit absolut keine Probleme. Hast du das neueste Update?

Iguan

BeitragSa, Feb 11, 2006 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Very Happy danke jetzt geht es!! ich hatte die Version 1.64 Embarassed
Hätte nicht gedacht, dass die mir eine alte Version verkaufen...
jetzt habe ich auch V1.94

Iguan

BeitragSa, Feb 11, 2006 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
noch ein problemchen...


ich habe folgenden code:

Code: [AUSKLAPPEN]



Graphics3D 640,480,32,2

Pfad$ = "Bla:\blablabla\blabla\"


Sonne = LoadSprite(Pfad$ + "Sonne.bmp",4)

EntityFX Sonne,16
ScaleSprite Sonne,80,80
PositionEntity Sonne, 0, 0, 0



Planet01 = LoadSprite(Pfad$ + "Planet01.bmp",4)
EntityFX Planet01,16
RadiusP01 = 200
WinkelP01# = 20
ScaleSprite Planet01, 4, 4
PositionEntity Planet01, (Cos(WinkelP01#) * RadiusP01), 0, (Sin(WinkelP01#) * RadiusP01)

EntityParent Planet01, Sonne



Cam = CreateCamera()
CameraRange Cam,1,10000
PositionEntity Cam, 0,480,0
RotateEntity Cam, 90,0,0


AmbientLight 255,200,180

SetBuffer BackBuffer()

While Not KeyHit(1)


    ; Taste "1"
    If KeyDown(2) Then
      AlignToVector Cam,EntityX(Planet01),EntityY(Planet01),EntityZ(Planet01),1,.001
      AlignToVector Cam,EntityX(Planet01),EntityY(Planet01),EntityZ(Planet01),2,.001
      AlignToVector Cam,EntityX(Planet01),EntityY(Planet01),EntityZ(Planet01),3,.001 
      MoveEntity Cam,0,0,1
    End If





   UpdateWorld
   RenderWorld
   Flip
Wend
End






wieso steuert die Kamera nicht auf den Planeten zu?[/syntax]

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group