Показать сообщение отдельно
Старый 07.06.2009, 22:08   #1
L.D.M.T.
Бывалый
 
Аватар для L.D.M.T.
 
Регистрация: 10.06.2006
Сообщений: 808
Написано 354 полезных сообщений
(для 832 пользователей)
Cube Runner: Reloaded

Graphics3D 800, 600, 32, 2 
SetBuffer BackBuffer() 

Global Camera = CreateCamera() 
PositionEntity Camera, 0, 0, -5 

Global CubeMesh = CreateMesh() 
Global CubeSurface = CreateSurface(CubeMesh) 

EntityFX CubeMesh, 34 

CreateMap(10, 10, 500, 1) 

; Für die frameunabhängige Programmierung 
Global LastUpdate%, Difference% 
Global MS% 
Global FElapsed#, F% 
Global TimeShift# = 1 
LastUpdate = MilliSecs() 

While Not KeyHit(1) 
    
   UpdateGame() 
   RenderWorld 
   Flip 
    
Wend 

Function UpdateGame() 
    
   ; Zeitrechnungen 
   Difference = MilliSecs() - LastUpdate 
   LastUpdate = MilliSecs() 
   FElapsed = FElapsed + Difference * TimeShift 
   MS = MS + (Difference * TimeShift) 
   F = FElapsed 
   FElapsed = FElapsed - F 
    
   MoveEntity Camera, F*.01*(KeyDown(205)-KeyDown(203)), F*.01*(KeyDown(200)-KeyDown(208)), F*(.005 + KeyDown(57)*.01) 
    
End Function 

Function CreateCubeFast(X#, Y#, Z#, ScaleX#, ScaleY#, ScaleZ#) 
    
   V1% = AddVertex(CubeSurface, X - ScaleX, Y + ScaleY, Z - ScaleZ) 
   V2% = AddVertex(CubeSurface, X + ScaleX, Y + ScaleY, Z - ScaleZ) 
   V3% = AddVertex(CubeSurface, X + ScaleX, Y - ScaleY, Z - ScaleZ) 
   V4% = AddVertex(CubeSurface, X - ScaleX, Y - ScaleY, Z - ScaleZ) 
   V5% = AddVertex(CubeSurface, X - ScaleX, Y + ScaleY, Z + ScaleZ) 
   V6% = AddVertex(CubeSurface, X + ScaleX, Y + ScaleY, Z + ScaleZ) 
   V7% = AddVertex(CubeSurface, X + ScaleX, Y - ScaleY, Z + ScaleZ) 
   V8% = AddVertex(CubeSurface, X - ScaleX, Y - ScaleY, Z + ScaleZ) 
    
   VertexColor CubeSurface, V1, Rand(0, 255), Rand(0, 255), Rand(0, 255) 
   VertexColor CubeSurface, V2, Rand(0, 255), Rand(0, 255), Rand(0, 255) 
   VertexColor CubeSurface, V3, Rand(0, 255), Rand(0, 255), Rand(0, 255) 
   VertexColor CubeSurface, V4, Rand(0, 255), Rand(0, 255), Rand(0, 255) 
   VertexColor CubeSurface, V5, Rand(0, 255), Rand(0, 255), Rand(0, 255) 
   VertexColor CubeSurface, V6, Rand(0, 255), Rand(0, 255), Rand(0, 255) 
   VertexColor CubeSurface, V7, Rand(0, 255), Rand(0, 255), Rand(0, 255) 
   VertexColor CubeSurface, V8, Rand(0, 255), Rand(0, 255), Rand(0, 255) 
    
   AddTriangle(CubeSurface, V1, V2, V3) 
   AddTriangle(CubeSurface, V1, V3, V4) 
   AddTriangle(CubeSurface, V2, V7, V3) 
   AddTriangle(CubeSurface, V6, V7, V2) 
   AddTriangle(CubeSurface, V1, V4, V8) 
   AddTriangle(CubeSurface, V5, V1, V8) 
   AddTriangle(CubeSurface, V5, V2, V1) 
   AddTriangle(CubeSurface, V5, V6, V2) 
   AddTriangle(CubeSurface, V4, V3, V7) 
   AddTriangle(CubeSurface, V7, V8, V4) 
    
End Function 

Function CreateMap(Width%, Height%, Length%, Percent#) 
    
   For X% = -Width To Width 
       
      For Y% = -Height To Height 
          
         For Z% = 0 To Length 
             
            If Rnd(100) < Percent Then 
                
               CreateCubeFast (X, Y, Z, 1, 1, 1) 
                
            EndIf 
             
         Next 
          
      Next 
       
   Next 
    
End Function
__________________
Per Aspera Ad Astra...

Последний раз редактировалось SBJoker, 08.06.2009 в 17:30.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mhyhr (07.06.2009)