Relief mit Musik

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
PornosDias vanBoston
Beiträge: 10
Registriert: 18.11.2019 20:12

Relief mit Musik

Beitrag von PornosDias vanBoston »

; Hugh.
; Ich habe hier eine Grafik von --pf shadoko--, die eigentlich in das
; englische Forum gehört.
; Da dort mein Login nicht funktioniert, setze ich den Source hier rein.
; Vieleicht kann jemand was mit dem Gerümpel anfangen.


;--------------------------------------
; Relief & Music & FmodEx

; PB 6.00 / 6.11

;"FmodEx.pbi" from "Grillmeister".

;https://www.purebasic.fr/german/viewtop ... od#p329333


;--------------------------------------
;von pf shadoko »Mo Jul 08, 2024 20:07 Uhr
;--------------------------------------

Code: Alles auswählen

Enumeration Gadget
   #Button_Musik : #Button_Start : #Button_Pause :  #Song_Name :  #Slider_Signal : #Text_Signal : #Slider_Signal_Position
   #Text_Signal_Position : #Button_Normal : #Button_RGB : #Button_Diffus : #Gradient_Position : #Text_Gradient_Position
   #Button_Gatter : #Slider_CamColor : #Text_CamColor
   #Licht_Color : #Slider_Licht_R : #Slider_Licht_G : #Slider_Licht_B : #Text_Licht_R : #Text_Licht_G : #Text_Licht_B 
   #Licht_Position : #Slider_Licht_X : #Slider_Licht_Y : #Slider_Licht_Z : #Text_Licht_X : #Text_Licht_Y : #Text_Licht_Z
   #Ambient_Color : #Slider_Amb_R : #Slider_Amb_G : #Slider_Amb_B : #Text_Amb_R : #Text_Amb_G : #Text_Amb_B : #Button_Ende : #Frame
EndEnumeration
;--------------------------------------
Procedure.l cola(col,a=$ff)  
   ProcedureReturn col | (a<<24)
EndProcedure
;--------------------------------------
;Declare Anim(Val)
;--------------------------------------
   LoadFont(1, "Arial", 14)
   SetGadgetFont(#PB_Default, FontID(1))
;######################################                                                                                               ;Fmod
   IncludeFile "fmodex.pbi"
;######################################                                                                                               ;Preferents
 Macro Grafik_Normal
   Global Normal = 1,  Material = 0 
;Lampe Position
   Global Licht_X = 100,  Licht_Y = 1,  Licht_Z = -100
   SetGadgetState(#Slider_Licht_X, Licht_X)
   SetGadgetText(#Text_Licht_X  ," X: "+Str(GetGadgetState(#Slider_Licht_X ))) 
   SetGadgetState(#Slider_Licht_Y, Licht_Y)
   SetGadgetText(#Text_Licht_Y  ," Y: "+Str(GetGadgetState(#Slider_Licht_Y )))   
   SetGadgetState(#Slider_Licht_Z, Licht_Z)
   SetGadgetText(#Text_Licht_Z  ," Z: "+Str(GetGadgetState(#Slider_Licht_Z )))  
;--------------------------------------  
;Lampe 
   Global Licht_R = 255,  Licht_G = 255,  Licht_B = 255
   SetGadgetState(#Slider_Licht_R, Licht_R)
   SetGadgetText(#Text_Licht_R  ," R: "+Str(GetGadgetState(#Slider_Licht_R )))   
   SetGadgetState(#Slider_Licht_G, Licht_G)
   SetGadgetText(#Text_Licht_G  ," G: "+Str(GetGadgetState(#Slider_Licht_G )))   
   SetGadgetState(#Slider_Licht_B, Licht_B)
   SetGadgetText(#Text_Licht_B  ," B: "+Str(GetGadgetState(#Slider_Licht_B )))  
;-------------------------------------- 
;Ambiente 
   Global Amb_R = 0,  Amb_G = 0,  Amb_B = 150 
   SetGadgetState(#Slider_Amb_R, Amb_R)
   SetGadgetText(#Text_Amb_R  ," R: "+Str(GetGadgetState(#Slider_Amb_R )))   
   SetGadgetState(#Slider_Amb_G, Amb_G)
   SetGadgetText(#Text_Amb_G  ," G: "+Str(GetGadgetState(#Slider_Amb_G )))  
   SetGadgetState(#Slider_Amb_B, Amb_B)
   SetGadgetText(#Text_Amb_B  ," B: "+Str(GetGadgetState(#Slider_Amb_B )))  
 EndMacro 
 ;-------------------------------------
 Macro Grafik_RGB   
   Global Normal = 0, Material = 1   
;Lampe Position
   Global Licht_X = 0,  Licht_Y = 0,  Licht_Z = -100
   SetGadgetState(#Slider_Licht_X, Licht_X)
   SetGadgetText(#Text_Licht_X  ," X: "+Str(GetGadgetState(#Slider_Licht_X )))  
   SetGadgetState(#Slider_Licht_Y, Licht_Y)
   SetGadgetText(#Text_Licht_Y  ," Y: "+Str(GetGadgetState(#Slider_Licht_Y )))  
   SetGadgetState(#Slider_Licht_Z, Licht_Z)
   SetGadgetText(#Text_Licht_Z  ," Z: "+Str(GetGadgetState(#Slider_Licht_Z )))  
 ;-------------------------------------
;Lampe 
   Global Licht_R = 255,  Licht_G = 255,  Licht_B = 255
   SetGadgetState(#Slider_Licht_R, Licht_R)
   SetGadgetText(#Text_Licht_R  ," R: "+Str(GetGadgetState(#Slider_Licht_R )))      
   SetGadgetState(#Slider_Licht_G, Licht_G)
   SetGadgetText(#Text_Licht_G  ," G: "+Str(GetGadgetState(#Slider_Licht_G )))    
   SetGadgetState(#Slider_Licht_B, Licht_B)
   SetGadgetText(#Text_Licht_B  ," B: "+Str(GetGadgetState(#Slider_Licht_B )))  
;-------------------------------------- 
;Ambient Gatter
   Global Amb_R = 255,  Amb_G = 255,  Amb_B = 255
   SetGadgetState(#Slider_Amb_R, Amb_R)
   SetGadgetText(#Text_Amb_R  ," R: "+Str(GetGadgetState(#Slider_Amb_R )))   
   SetGadgetState(#Slider_Amb_G, Amb_G)
   SetGadgetText(#Text_Amb_G  ," G: "+Str(GetGadgetState(#Slider_Amb_G )))    
   SetGadgetState(#Slider_Amb_B, Amb_B)
   SetGadgetText(#Text_Amb_B  ," B: "+Str(GetGadgetState(#Slider_Amb_B )))  
 EndMacro
;######################################  
   InitEngine3D() : InitSprite() : InitKeyboard() : InitMouse()
   Add3DArchive(#PB_Compiler_Home + "examples/3d/Data/Textures", #PB_3DArchive_FileSystem) 
 ;Finster   
   OpenWindow(0, 0, 0, 0,0, "      [F12]: Wireframe ----- [Esc]: Quit " ,#PB_Window_Maximize)   
   ex=WindowWidth (0,#PB_Window_InnerCoordinate)
   ey=WindowHeight(0,#PB_Window_InnerCoordinate)                                                                                                                                                                       ;Button  
   ButtonGadget(#Button_Musik, 10, 30, 200, 40, "Lood de Musik")  
   ButtonGadget(#Button_Start, 230, 30, 80, 40, "Start") 
   ButtonGadget(#Button_Pause, 320, 30, 80, 40, "Pause")      
   ButtonGadget(#Button_Normal, 10, 160, 80, 40, "Normal", #PB_Button_Toggle)    
   ButtonGadget(#Button_RGB, 120, 160, 80, 40, "RGB ", #PB_Button_Toggle)          
   ButtonGadget(#Button_Diffus, 210, 160, 80, 40, "<<Diffus", #PB_Button_Toggle) 
   TextGadget(#Song_Name, 10, 90, 390, 50, "", #PB_Text_Center | #PB_Text_Border )
   
   SetGadgetColor(#Song_Name, #PB_Gadget_FrontColor,RGB(255,255,255))
   SetGadgetColor(#Song_Name, #PB_Gadget_BackColor,RGB(0,0,255))        
   ScrollBarGadget(#Slider_Signal, 10, 220, 150, 30, 0, 40, 0)   
   TextGadget(#Text_Signal, 165, 220, 120, 30, "")   
   ScrollBarGadget(#Slider_CamColor, 10, 280, 120, 30, 0, 255, 0)        
   TextGadget(#Text_CamColor, 135, 280, 150, 30,"")    
   ScrollBarGadget(#Gradient_Position, 10, 330, 120, 30, 1, 5, 0)        
   TextGadget(#Text_Gradient_Position, 135, 330, 150, 30,"")
;--------------------------------------  
;Lampe  Position
   TextGadget(#Licht_Position, 10, 385, 225, 25, "    Licht Position ")       
   ScrollBarGadget(#Slider_Licht_X, 10, 420, 150, 30,    -100, 100, 0)  ;###  Minus                               Debug!
   TextGadget(#Text_Licht_X, 165, 420, 70, 30, "")       
   ScrollBarGadget(#Slider_Licht_Y, 10, 460, 150, 30, 0, 100, 0)   
   TextGadget(#Text_Licht_Y, 165, 460, 70, 30, "")    
   ScrollBarGadget(#Slider_Licht_Z, 10, 500, 150, 30,    -100, 100, 0)  ;###  Minus
   TextGadget(#Text_Licht_Z, 165, 500, 70, 30, "")           
;Lampe      
   TextGadget(#Licht_Color, 10, 555, 225, 25, "    Licht Color ")        
   ScrollBarGadget(#Slider_Licht_R, 10, 590, 150, 30, 0, 255, 0)   
   TextGadget(#Text_Licht_R, 165, 590, 70, 30, "")        
   ScrollBarGadget(#Slider_Licht_G, 10, 630, 150, 30, 0, 255, 0) 
   TextGadget(#Text_Licht_G, 165, 630, 70, 30, "")       
   ScrollBarGadget(#Slider_Licht_B, 10, 670, 150, 30, 0, 255, 0)
   TextGadget(#Text_Licht_B, 165, 670, 70, 30, "")     
;--------------------------------------  
;Ambiente Gatter    
   TextGadget(#Ambient_Color, 10, 725, 225, 25, "    Ambiente Gatter ")    
   ScrollBarGadget(#Slider_Amb_R, 10, 760, 150, 30, 0, 255, 0)   
   TextGadget(#Text_Amb_R, 165, 760, 70, 30, "")        
   ScrollBarGadget(#Slider_Amb_G, 10, 800, 150, 30, 0, 255, 0) 
   TextGadget(#Text_Amb_G, 165, 800, 70, 30, "")      
   ScrollBarGadget(#Slider_Amb_B, 10, 840, 150, 30, 0, 255, 0)
   TextGadget(#Text_Amb_B, 165, 840, 70, 30, "")       
;--------------------------------------    
   ButtonGadget(#Button_Ende,  10, 900, 200, 40, "Ende    ( Esc )")
   FrameGadget(#Frame, 10, 980, 125, 30, "", #PB_Frame_Double) 
;--------------------------------------
;Schild  
   OpenWindowedScreen(WindowID(0), 0, 0, ex, ey, 0, 0, 0)        
   CreateCamera(0, 0, 0, 100, 100)  
   CreateLight(0, RGB(0, 0, 0),  0, 0, 0) 
;--------------------------------------    
  ;LoadTexture(1, "Flare.png" )                                                                                                          ;Textur
  ;LoadTexture(1, "Wood.jpg" )  
  ;LoadTexture(1, "smoke2.png" )   
  LoadTexture(1, "spheremap.png" )  
;--------------------------------------    
   SetWindowTheme_(GadgetID(#Button_Musik),@Null,@Null)
   SetWindowTheme_(GadgetID(#Button_Start),@Null,@Null)
   SetWindowTheme_(GadgetID(#Button_Pause),@Null,@Null)
   SetWindowTheme_(GadgetID(#Slider_Signal),@Null,@Null)
   SetWindowTheme_(GadgetID(#Button_Ende),@Null,@Null)
  ;------------------------------------                                                                                                                   ;Fmod
   Dim Array.f ( 2048 )   ;  8192
   Global fmodsystem.i, Channel.i, Sound.i 
   FMOD_System_Create(@System)  
   FMOD_System_Init(System, 2, #FMOD_INIT_NORMAL, 0)
   ;--------------------------------------                                                                                                                ;image creation
   Global n = 128, n1 = n-1
   CreateImage(0,n,n,32) 
   Dim t.MeshVertex(n,n)
   dist=160       
;--------------------------------------                                                                                                                    ;Start Grafik
   SetGadgetState(#Button_Normal ,1)   
   Grafik_Normal  
   P = 0                 
   Diffus = 0                                                                                                                                             ;Start Preferents
;--------------------------------------  
   Global Signal = 10,  CamColor = 100,  Gradient_Position = 4
   SetGadgetState(#Slider_Signal, Signal)
   SetGadgetText(#Text_Signal  ," Signal: "+Str(GetGadgetState(#Slider_Signal )))     
   SetGadgetState(#Slider_CamColor, CamColor)
   SetGadgetText(#Text_CamColor  ," Cam Color: "+Str(GetGadgetState(#Slider_CamColor )))  
   SetGadgetState(#Gradient_Position, Gradient_Position)
   SetGadgetText(#Text_Gradient_Position ," Gradient Pos: "+Str(GetGadgetState(#Gradient_Position )))   
;######################################                                                                                         ;Musik
Macro Musik
   P = 0  
   Signal = GetGadgetState( #Slider_Signal )  ; Wenn Pause aktiv.  Grafik start.  
   Song.s  = OpenFileRequester("*","*", " Song  (*.mp3, *.wav, *.mp2)|*.mp3;*.wav;*.mp2|*.*|*.*",0,0)                   
       FMOD_System_CreateStream(System,  Ascii(Song) , #FMOD_CREATESTREAM, 0 , @sound)                     
       FMOD_System_PlaySound(System,  0,  sound,  0,  @Channel)        
       FMOD_Channel_SetVolume(Channel, 1) 
       GP.s  = GetFilePart(Song, #PB_FileSystem_NoExtension)       
       SetGadgetText(#Song_Name,GP)      
EndMacro                                                                           
;######################################    
    Repeat
      Repeat    
        Event = WindowEvent()                 
        Select Event
          Case #PB_Event_CloseWindow
                           
          Case #PB_Event_Gadget                      
            Gadget = EventGadget()        
            Select Gadget
;--------------------------------------  
     Case #Button_Musik            
             Musik:

     Case #Button_Start  
             P = 0
            Signal = GetGadgetState( #Slider_Signal )                       
            FMOD_System_PlaySound(System,  0,  sound,  0,  @Channel)            
;--------------------------------------                        
     Case #Button_Pause                             
           If P = 0
              SetGadgetState(#Button_Pause,1)  
              FMOD_Channel_SetPaused(Channel, #True)
              P =10  
              Signal = 0          
                                
           Else
                SetGadgetState(#Button_Pause,0)  
                FMOD_Channel_SetPaused(Channel, #False)
                P = 0  
                Signal = GetGadgetState( #Slider_Signal )                 
            EndIf                    
;--------------------------------------                  
     Case #Button_Normal                                              
                SetGadgetState(#Button_Normal ,1)                              
                SetGadgetState(#Button_RGB      ,0)              
                DisableGadget(#Button_Diffus     ,1)                                                     
                Grafik_Normal   
                                                    
     Case #Button_RGB                  
                SetGadgetState(#Button_Normal ,0)                                  
                SetGadgetState(#Button_RGB      ,1) 
                DisableGadget(#Button_Diffus    , 0)             
                Grafik_RGB 
                         
     Case #Button_Diffus                             
             If Diffus = 0
                SetGadgetState(#Button_Diffus,1)                        
                Diffus = 1                                         
             Else
                SetGadgetState(#Button_Diffus,0)               
                Diffus = 0             
             EndIf                                                          
;--------------------------------------  
;Signal
            Case #Slider_Signal 
            Signal  = GetGadgetState(#Slider_Signal )                         
            SetGadgetText(#Text_Signal  ," Signal: "+Str(GetGadgetState(#Slider_Signal )))     
;--------------------------------------
;Kamera 
            Case #Slider_CamColor
            CamColor = GetGadgetState(#Slider_CamColor )  
            SetGadgetText(#Text_CamColor, " Cam Color: " + Str(GetGadgetState(#Slider_CamColor) ))	             
;--------------------------------------
;Gradient Position
            Case #Gradient_Position 
            Gradient_Position  = GetGadgetState(#Gradient_Position )  
            SetGadgetText(#Text_Gradient_Position  ," Gradient Pos: "+Str(GetGadgetState(#Gradient_Position )))             
;--------------------------------------
;Lampe  X, Y, Z  
            Case #Slider_Licht_X 
            Licht_X  = GetGadgetState(#Slider_Licht_X )  
            SetGadgetText(#Text_Licht_X  ," X: "+Str(GetGadgetState(#Slider_Licht_X )))  
            
            Case #Slider_Licht_Y 
            Licht_Y  = GetGadgetState(#Slider_Licht_Y )  
            SetGadgetText(#Text_Licht_Y  ," Y: "+Str(GetGadgetState(#Slider_Licht_Y )))  
           
           Case #Slider_Licht_Z 
            Licht_Z  = GetGadgetState(#Slider_Licht_Z )  
            SetGadgetText(#Text_Licht_Z  ," Z: "+Str(GetGadgetState(#Slider_Licht_Z )))  
                      
 ;Lampe  RGB                                      
            Case #Slider_Licht_R 
            Licht_R  = GetGadgetState(#Slider_Licht_R )  
            SetGadgetText(#Text_Licht_R  ," R: "+Str(GetGadgetState(#Slider_Licht_R )))  
            
            Case #Slider_Licht_G 
            Licht_G  = GetGadgetState(#Slider_Licht_G )  
            SetGadgetText(#Text_Licht_G  ," G: "+Str(GetGadgetState(#Slider_Licht_G )))   
             
            Case #Slider_Licht_B 
            Licht_B  = GetGadgetState(#Slider_Licht_B )  
            SetGadgetText(#Text_Licht_B  ," B: "+Str(GetGadgetState(#Slider_Licht_B )))                          
;--------------------------------------
;Ambiente Gatter                      
            Case #Slider_Amb_R 
            Amb_R  = GetGadgetState(#Slider_Amb_R )  
            SetGadgetText(#Text_Amb_R  ," R: "+Str(GetGadgetState(#Slider_Amb_R )))  
            
            Case #Slider_Amb_G 
            Amb_G  = GetGadgetState(#Slider_Amb_G )  
            SetGadgetText(#Text_Amb_G  ," G: "+Str(GetGadgetState(#Slider_Amb_G )))   
             
            Case #Slider_Amb_B 
            Amb_B  = GetGadgetState(#Slider_Amb_B )  
            SetGadgetText(#Text_Amb_B  ," B: "+Str(GetGadgetState(#Slider_Amb_B )))    
;--------------------------------------                                                 
            Case #Button_Ende    
              FMOD_Channel_Stop(Channel)
              FMOD_System_Release(System)                                                                     
              End                   
;--------------------------------------               
            EndSelect 
            ; Delay(1)     
            EndSelect           
    Until Event = 0                     
;###################################### Fmod
   FMOD_Channel_GetSpectrum(Channel, Array(), 2048,  0,0)  ; 128, 512, 1024, 2048, 4096, 8192          ;Fmod  
   FMOD_Channel_IsPlaying(Channel, @Play)     
      If Play = #True  : Signal = Signal : EndIf
      If Play = #False : Signal = 0 : EndIf     
;######################################   
   StartVectorDrawing(ImageVectorOutput(0))                                                                                           ;image creation
   For i = 15    To     n -24 Step 15  
   For j = 15    To     n -24 Step 15  
;-------------------------------------- 
     fr = 100 
     Fr1.f = fr - Pow(1 / fr ,  Array( i  ))  * fr   :  Dir1 = Int(Fr1)   * Signal                                                       ;Slider Signal 
    ;Fr2.f = fr - Pow(1 / fr ,  Array( j  ))  * fr   :  Dir2 = Int(Fr2)  * Signal      
; RGB  Signal         
     Fr3.f = fr - Pow(1 / fr ,  Array( 4 ))  * fr   :  Col1 = Int(Fr3)  * Signal  
     Fr4.f = fr - Pow(1 / fr ,  Array( 6 ))  * fr   :  Col2 = Int(Fr4)  * Signal  
;--------------------------------------  
     x =  i + Random( 25 )   
     y =  j + Random( 20 )            
     r =  12    
             
    If Normal = 1                                                                                                                                           ;Normal Grafik
       c =  Dir1        
    Else 
;                       Direktion           Kolör                       
       c =  RGB(    Dir1,            Col1, Col2  )                                                                                                   ;RGB Grafik
    EndIf      
;-------------------------------------   
;VectorSourceCircularGradient( x.d, y.d, Radius.d, [ Midde_X.d, Midde_Y.d ] ) 
   VectorSourceCircularGradient( x, y, r )          
;VectorSourceGradientColor( Farbe, Position.d ) 
   VectorSourceGradientColor(cola(c, 255 ), 0.0 )       
   VectorSourceGradientColor(cola(c,     0 ), 0.5 + ( Gradient_Position / 10 ) )                                           ;Gradient Position        
;AddPathCircle(x.d, y.d, Radius.d [, Start_Winkel.d,   End_Winkel.d   [, Flags]]) 
   AddPathCircle( x, y, r  ) 
;AddPathEllipse(x.d, y.d, RadiusX.d, RadiusY.d [, Start_Winkel.d, End_Winkel.d [, Flags]])  
  ;AddPathEllipse(  65,  65,  45,  45     )   ;   Ellipse wenn Musik start     
 FillPath() 
   Next
   Next    
   StopVectorDrawing()
;#####################################                                                                                            entity / mesh creation
   StartDrawing(ImageOutput(0))
   For j=0 To n  
   For i=0 To n
      With t(j,i)      
        color=Point( i & n1, j & n1 )
        \color=color                       
             \x=(i-n/2)
             \z=(n/2-j)          
             \y= -25 + Red(color) / 4     ;  -25 Position,   / 4  Hoehe                                                                  ;Height                                                                                                       
       EndWith 
    Next : Next    
   StopDrawing()  
   CreateDataMesh(0,t(),#PB_Mesh_DiagonalClosestNormal +8)  
;--------------------------------------
;Textur inaktiv                                                                                                                                             ;Textur inaktiv
   CreateMaterial(0, 0 ) 
   CreateEntity(0, MeshID(0), MaterialID(0))
   
;Textur aktiv                                                                                                                                                 ;Textur aktiv
;    CreateMaterial(1, TextureID(1))  
;    AddMaterialLayer(1,TextureID(1)  , #PB_Material_Add   ,0)     
;    SetMaterialAttribute(1,  #PB_Material_EnvironmentMap |  #PB_Material_NormalMap  ,1) 
;    CreateEntity(0, MeshID(0), MaterialID(1))
;--------------------------------------
   If Material  = 1                                                                                                                                             ;RGB  Diffus
      If Diffus  = 1   
       SetMaterialColor(0, #PB_Material_AmbientColor | #PB_Material_DiffuseColor, -1 )  
       Else : SetMaterialColor(0, #PB_Material_AmbientColor, -1 ) : EndIf : Else : EndIf  

   SetLightColor(0,  0 , RGB( Licht_R, Licht_G, Licht_B) )   
   MoveLight(0,    Licht_X,  Licht_Y,  - Licht_Z  , #PB_Absolute)       ;Position Lampe    
   AmbientColor(RGB(Amb_R, Amb_G, Amb_B) )                             ;Gatter
   CameraBackColor(0, RGB(CamColor, CamColor, CamColor))   
;###################################### 
   ExamineKeyboard()  
   dist - (Bool(KeyboardPushed(#PB_Key_Down)<>0)-Bool(KeyboardPushed(#PB_Key_Up   )<>0))*1-MouseWheel()*10
   If KeyboardReleased(#PB_Key_F12):fdf=1-fdf:If fdf  : CameraRenderMode(0,#PB_Camera_Wireframe)
   Else : CameraRenderMode(0,#PB_Camera_Textured)  : EndIf:EndIf
   
   a.f = 1.57   
   MoveCamera(0,Cos(a)*dist,dist*0.3,Sin(a)*dist,0) 
   
   StartDrawing(WindowOutput(0))  :   DrawingFont(FontID(1))           
   ;DrawText(18, 985,"FPS ="    +Str (  Engine3DStatus ( 3 ))) ;#PB_Engine3D_CurrentFPS )))                   ;FPS  
   DrawText(18, 985,"FPS =" +StrF (  Engine3DStatus ( 3 ),2)) 
   StopDrawing()        
   CameraLookAt(0,0,0,0)  : RenderWorld() : FlipBuffers()           
   Until KeyboardPushed(#PB_Key_Escape) 
 ;------------------------------------- 
 ;-------------------------------------
;    q = 1 
;    CreateThread(@Anim(), Val)     
;    Procedure Anim(Val) 
;    While q 
;    Grafik
;    CameraLookAt(0,0,0,0) : RenderWorld() : FlipBuffers()        
;    Wend
;    EndProcedure