AlignToVector

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

TheProgrammer

Betreff: AlignToVector

BeitragDi, Feb 17, 2004 21:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir funktioniert der Befehl AlignToVector nicht. Gibt es dafür vieleicht einen Code, den man anwenden kann, um den Befehl "nachzumachen"?
aktuelles Projekt: The last day of human being

Markus2

BeitragDi, Feb 17, 2004 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei dieser Funk. mußte sagen nach welcher Achse das Objekt
ausgerichtet werden soll .
Evtl. auch alle 3 nacheinander .

rate# ist ja optional und besagt das du mit diesem Wert auch
eine Annäherung an die Achse machen kannst .
Also default ist dort 1 und es wird direkt eine Achse zur anderen
übertragen .
Jede Achse kann man sich auch als Richtungsvector vorstellen .

Code: [AUSKLAPPEN]


;AlignToVector Test by Markus Rauch

Graphics3D 640,480,16,0
SetBuffer BackBuffer()

cam=CreateCamera()
PositionEntity cam,0,0,-10

e1=CreateCube()
e2=CreateCube()

e1x=CreateCube(e1)
ScaleMesh e1x,0.25,0.25,0.25
MoveEntity e1x,0,1,0

e2x=CreateCube(e2)
ScaleMesh e2x,0.25,0.25,0.25
MoveEntity e2x,0,1,0

EntityColor e1x,255,0,0
EntityColor e2x,255,0,0

PositionEntity e2,3,0,0

Type VecType
 Field x#
 Field y#
 Field z#
End Type

Global v.VecType
v.VecType=New VecType

While Not KeyHit(1) ;ESC

 ;Tasten 1 2 3
 If KeyDown(2) Then TurnEntity e1,5,0,0
 If KeyDown(3) Then TurnEntity e1,0,5,0
 If KeyDown(4) Then TurnEntity e1,0,0,5

 VX e1,v
 AlignToVector e2,v\x,v\y,v\z,1,0.1
 VY e1,v
 AlignToVector e2,v\x,v\y,v\z,2,0.1
 VZ e1,v
 AlignToVector e2,v\x,v\y,v\z,3,0.1

 RenderWorld

 Color 255,255,0

 Text 0,15*0,r2(EntityPitch(e1))
 Text 0,15*1,r2(EntityYaw  (e1))
 Text 0,15*2,r2(EntityRoll (e1))

 Text 0,15*4,r2(EntityPitch(e2))
 Text 0,15*5,r2(EntityYaw  (e2))
 Text 0,15*6,r2(EntityRoll (e2))

 Flip
Wend
End

Function VX(e,v.VecType)

 Local piv=CreatePivot()

 RotateEntity piv,EntityPitch(e,True),EntityYaw(e,True),EntityRoll(e,True)

 MoveEntity piv,1,0,0
 v\X=EntityX(piv)
 v\Y=EntityY(piv)
 v\Z=EntityZ(piv)

 FreeEntity piv

End Function

Function VY(e,v.VecType)

 Local piv=CreatePivot()

 RotateEntity piv,EntityPitch(e,True),EntityYaw(e,True),EntityRoll(e,True)

 MoveEntity piv,0,1,0
 v\X=EntityX(piv)
 v\Y=EntityY(piv)
 v\Z=EntityZ(piv)

 FreeEntity piv

End Function

Function VZ(e,v.VecType)

 Local piv=CreatePivot()

 RotateEntity piv,EntityPitch(e,True),EntityYaw(e,True),EntityRoll(e,True)

 MoveEntity piv,0,0,1
 v\X=EntityX(piv)
 v\Y=EntityY(piv)
 v\Z=EntityZ(piv)

 FreeEntity piv

End Function

Function R2#(x#)

 Return Int(x*100.0)/100.0

End Function

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group