da hast du recht, Benubi. So wird das Problem für alle transparenter. Hier nun mein Beispielcode:
Code: Alles auswählen
; PB 6.02
; mit NumPad 8 wird beschleunigt
; mit A und D wird nach links bzw. rechts navigiert
; mit W uns S nach oben und unten
; bei A und D reagiert CameraFollow wie es sein soll und verfolgt smooth das Entity
; und nun zum Problem:
; bei W und S blickt die Camera weiterhin auf das Entity, bleibt allerdings stehen,
; so das sich das Entity smooth von der Camera entfernt
EnableExplicit
Enumeration Window
#GameWin
EndEnumeration
Structure structLight
iPointLight.i
EndStructure
Structure structCamera
iMainCam.i
EndStructure
Declare CleanUpAndEnd()
Define iFlags.i = #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget
Define stPointLight.structLight, stCamera.structCamera
Define iCapsuleMesh.i, iCapsuleEntity.i, iPlanetSphereMesh.i
Procedure CleanUpAndEnd()
CloseWindow( EventWindow() )
End
EndProcedure
If InitEngine3D() = #False
MessageRequester( "Fehler", "InitEngine3D() fehlgeschlagen !!!" )
ElseIf InitSprite() = #False
MessageRequester( "Fehler", "InitSprite() fehlgeschlagen !!!" )
ElseIf InitKeyboard() = #False
MessageRequester( "Fehler", "InitKeyboard() fehlgeschlagen !!!" )
ElseIf InitMouse() = #False
MessageRequester( "Fehler", "InitMouse() fehlgeschlagen !!!" )
ElseIf InitSound() = #False
MessageRequester( "Fehler", "InitSound() fehlgeschlagen !!!" )
EndIf
UsePNGImageDecoder()
UseOGGSoundDecoder()
Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Packs/skybox.zip", #PB_3DArchive_Zip)
If OpenWindow( #GameWin, 0, 0, 1620, 920, "3D-Stuff", iFlags )
AntialiasingMode( #PB_AntialiasingMode_x6 )
If OpenWindowedScreen( WindowID( #GameWin ), 10, 10, WindowWidth( #GameWin ) -20, WindowHeight( #GameWin ) - 20 )
SetFrameRate( 60 )
stPointLight\iPointLight = CreateLight( #PB_Any, RGB( 25, 25, 180 ), -5, 10, 5, #PB_Light_Point )
stCamera\iMainCam = CreateCamera( #PB_Any, 0, 0, 100, 100 )
CameraFOV( stCamera\iMainCam, 60 )
CameraRange( stCamera\iMainCam, 0.1, 10000 )
iCapsuleMesh = CreateCapsule( #PB_Any, 0.5, 2, 64, 64, 64 )
TransformMesh( iCapsuleMesh, 0, 0, 0, 1, 1, 1, -90, 0, 0 )
iCapsuleEntity = CreateEntity( #PB_Any, MeshID( iCapsuleMesh ), #PB_Material_None )
Dim PlanetSphereMeshArray.i(999)
Define a.i
For a = 0 To 999
iPlanetSphereMesh = CreateSphere( #PB_Any, Random( 10, 1 ), 64, 64 )
PlanetSphereMeshArray( a ) = iPlanetSphereMesh
Next
Dim PlanetSphereEntityArray.i(999)
For a = 0 To 999
PlanetSphereEntityArray( a) = CreateEntity( #PB_Any, MeshID( PlanetSphereMeshArray( a ) ), #PB_Material_None, 5000 - Random(10000, 0), 5000 - Random(10000, 0), 5000 - Random(10000, 0) )
Next
FreeArray( PlanetSphereMeshArray() )
FreeArray( PlanetSphereEntityArray() )
SkyBox("stevecube.jpg")
Repeat
Repeat
Define iWindowEvent.i = WindowEvent()
Select iWindowEvent
Case #PB_Event_CloseWindow
CleanUpAndEnd()
EndSelect
Until iWindowEvent = 0
If ExamineKeyboard()
If KeyboardPushed( #PB_Key_Escape )
CleanUpAndEnd()
EndIf
If KeyboardPushed( #PB_Key_Pad8 )
MoveEntity( iCapsuleEntity, 0, 0, -1.5, #PB_Local )
EndIf
If KeyboardPushed( #PB_Key_A )
RotateEntity( iCapsuleEntity, 0, 0.5, 0, #PB_Relative )
EndIf
If KeyboardPushed( #PB_Key_D )
RotateEntity( iCapsuleEntity, 0, -0.5, 0, #PB_Relative )
EndIf
If KeyboardPushed( #PB_Key_W )
RotateEntity( iCapsuleEntity, 0.5, 0, 0, #PB_Relative )
EndIf
If KeyboardPushed( #PB_Key_S )
RotateEntity( iCapsuleEntity, -0.5, 0, 0, #PB_Relative )
EndIf
CameraFollow( stCamera\iMainCam, EntityID( iCapsuleEntity ), 0, 3, 5, 0.1, 0.25, #True )
EndIf
RenderWorld()
FlipBuffers()
ForEver
EndIf
EndIf
Ich hoffe, ihr erkennt, was ich meine und könnt helfen.