Показать сообщение отдельно
Старый 18.02.2007, 01:14   #10
Chuma
ПроЭктировщик
 
Регистрация: 23.11.2006
Сообщений: 130
Написано 3 полезных сообщений
(для 35 пользователей)
Re: 1 окно, 2 камеры

Во - вообще 1 в 1....
AppTitle "Minimap" 

Dim GFX(3) 
   GFX(0) = 800 
   GFX(1) = 600 
   GFX(2) = 16 
   GFX(3) = 1 
       
Graphics3D GFX(0),GFX(1),GFX(2),GFX(3) 
SetBuffer BackBuffer() 

Global FPS = MilliSecs() 
Global player = CreateSphere() 
   PositionEntity player,0,2,0 
Global cam1p = CreatePivot(Player) 
   TurnEntity cam1p,30,0,0 
Global cam1 = CreateCamera(cam1p) 
   MoveEntity cam1,0,0,-5 
Global l1 = CreateLight(cam1) 
Global Boden = CreatePlane() 
Global Boden_tex = CreateTexture(16,16) 
   SetBuffer TextureBuffer(Boden_tex) : Color 155,155,155 : Rect 0,0,16,16 : Color 255,0,0 : Rect 4,4,8,8 : Line 0,0,15,15 : Line 0,15,15,0 : Color 0,0,0 : Rect 0,0,16,16,0 : SetBuffer BackBuffer() 
   ScaleTexture Boden_tex,8,8 
   EntityTexture Boden,Boden_tex 
    
;-man ben?igt fr diesen abschnitt die Media-datein-------- 
;-die man im Samples Order "/castle/castle" finden---------- 
;-diese einfach in einen "media"-order speichern und-------- 
;-den im Order abspeichern in dem sich diese Datei befindet- 
Global world = CreateCone();  LoadMesh("media/castle1.x") 
   ScaleEntity world,0.2,0.2,0.2 
   PositionEntity world,0,-0.5,0 
    
   ScaleEntity player,2,2,2 
   PositionEntity player,0,2,-30 
    
   EntityType player,1 
   EntityType world,2 
   EntityType Boden,3 
   EntityRadius player,2 
   Collisions 1,2,2,3 
   Collisions 1,3,2,3 
;-In der Hauptschleife folgt ein 2.Teil den man nicht------ 
;-ben?igt wenn man die Media-Dateien nicht haben---------- 

Const minimap_size = 250 
Global minimap = CreateImage(minimap_size,minimap_size) : MaskImage minimap,10,20,30 
Global minimap_cam = CreateCamera() 
   CameraViewport minimap_cam,GFX(0)-minimap_size,0,minimap_size,minimap_size 
Global minimap_alpha = CreateImage(minimap_size,minimap_size) : MaskImage minimap_alpha,0,0,255 
   SetBuffer ImageBuffer(minimap_alpha) : Color 10,20,30 : Rect 0,0,minimap_size,minimap_size : Color 0,0,255 : Oval 0,0,minimap_size,minimap_size : Color 255,0,0 : Oval 0,0,minimap_size,minimap_size,0 : Oval 1,1,minimap_size-2,minimap_size-2,0 : Color 0,0,0 : Oval Minimap_size/2-4,minimap_size/2-4,8,8 : Rect minimap_size/2-2,minimap_size/2-7,4,3 : SetBuffer BackBuffer() 

Repeat 

   If KeyDown(17) Then MoveEntity Player,0,0,+0.5 
   If KeyDown(31) Then MoveEntity Player,0,0,-0.5 
   If KeyDown(30) Then MoveEntity Player,-0.5,0,0 
   If KeyDown(32) Then MoveEntity Player,+0.5,0,0 
    
   PositionEntity minimap_cam,EntityX(player),100,EntityZ(player) 
   RotateEntity minimap_cam,90,EntityYaw(player),EntityRoll(player) 

;-2.Teil l?chen wer keine Media-Datein will- 
;-forsetzun von eben------------------------- 
   PositionEntity player,EntityX(player),EntityY(player)-0.2,EntityZ(player) 
    
   mxs = MouseXSpeed() 
   mys = MouseYSpeed() 
    
   TurnEntity player,0,-mxs,0 
   TurnEntity cam1p,mys,0,0 
   MoveMouse GFX(0)/2,GFX(1)/2 
   MouseXSpeed() : MouseYSpeed() 
;-------------------------------------------- 


UpdateWorld 

   EntityOrder minimap_cam,-1 
   EntityOrder player,1 
RenderWorld 
   CopyRect GFX(0)-minimap_size,0,minimap_size,minimap_size,0,0,BackBuffer(),ImageBuffer(minimap) 
   SetBuffer ImageBuffer(minimap) : DrawImage minimap_alpha,0,0 : SetBuffer BackBuffer() 
   EntityOrder minimap_cam,1 
   EntityOrder player,0 
RenderWorld 
    
   DrawImage minimap,10,10 
   Color 255,255,255 
      Text 10,GFX(1)-30,"TrisRendered() = " + TrisRendered() 
      Text 10,GFX(1)-15,"F(rames)P(er)S(econd) = " + FPS_return() 
    

Flip 
Until KeyHit(1) 

End 

Function FPS_return() 
    
   If FPS < MilliSecs() Then currentframes = 1000/(MilliSecs() - FPS) 
   FPS = MilliSecs() 
   Return currentframes 

End Function
(Offline)
 
Ответить с цитированием