Ooops
January 26, 2021, 05:48:49 AM

Author Topic: [bb] Screen mode selector by Filax [ 1+ years ago ]  (Read 476 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bb] Screen mode selector by Filax [ 1+ years ago ]
« on: June 29, 2017, 12:28:38 AM »
Title : Screen mode selector
Author : Filax
Posted : 1+ years ago

Description : Quick screen mode selector without graphics :)

Code :
Code: BlitzBasic
  1. ChoosescreenMode()
  2.  
  3. While Not KeyHit(1)
  4.         RenderWorld
  5.  
  6.         Color 255,255,0
  7.         Text 0,20,GraphicsWidth()+" / "+GraphicsHeight()+" / "+GraphicsDepth()
  8.        
  9.         Flip False
  10. Wend
  11.  
  12. ClearWorld
  13. End
  14.  
  15.  
  16.  
  17. Type tMode
  18.  
  19.         Field Width%
  20.         Field Height%
  21.         Field Depth%
  22.         Field Mode%
  23.         Field Id%
  24.        
  25. End Type
  26.  
  27.  
  28. Function ChooseScreenMode(Title$="My App",MinWidth=1024)
  29.  
  30.         Graphics3D 400,240,0,2
  31.         SetBuffer BackBuffer ()
  32.         AppTitle Title$
  33.        
  34.         Local Count%=CountGfxModes3D()
  35.        
  36.         Local Total%
  37.         Local Current%=0
  38.        
  39.         Local Width%
  40.         Local Height%
  41.         Local Depth%
  42.         Local Mode%
  43.        
  44.         Local C%
  45.         Local Y%
  46.         Local O%
  47.        
  48.         Local Sx%=GraphicsWidth()
  49.         Local Sy%=GraphicsHeight()
  50.         Local ScrollY#=50
  51.        
  52.                
  53.         Local Size%=20 
  54.         Local Font=LoadFont("arial",Size%-2,1,0,0)
  55.         SetFont Font
  56.        
  57.         For i=1 To Count%
  58.        
  59.                 If GfxModeWidth(I)>=MinWidth
  60.                
  61.                 Current%=Current%+1
  62.                
  63.                 m.tMode=New tMode
  64.                 mWidth%=GfxModeWidth(I)
  65.                 mHeight%=GfxModeHeight(I)
  66.                 mDepth%=GfxModeDepth(I)
  67.                 mMode%=1
  68.                 mId%=Current%
  69.  
  70.  
  71.                 Total%=Total%+1
  72.                                
  73.                 EndIf
  74.                
  75.         Next   
  76.        
  77.         Current=1
  78.                
  79.         Repeat
  80.                
  81.                 Cls
  82.  
  83.                 ; ---
  84.                 ; back
  85.                 ; ---
  86.                 Viewport 0, 0, Sx%,Sy%
  87.                        
  88.                 Color 0,49,72
  89.                 Rect 0,0,Sx%,Sy%,1
  90.                
  91.                 ScrollY#=ScrollY#+0.8 : If ScrollY#>Sy%-50 Then ScrollY#=50
  92.                
  93.                 Color 0,53,76 : Line 0,ScrollY#+0,Sx%,ScrollY#+0
  94.                 Color 0,57,80 : Line 0,ScrollY#+1,Sx%,ScrollY#+1
  95.                 Color 0,61,84 : Line 0,ScrollY#+2,Sx%,ScrollY#+2
  96.                 Color 0,65,88 : Line 0,ScrollY#+3,Sx%,ScrollY#+3
  97.                 Color 5,76,99 : Line 0,ScrollY#+4,Sx%,ScrollY#+4
  98.                 Color 0,65,88 : Line 0,ScrollY#+5,Sx%,ScrollY#+5
  99.                 Color 0,61,84 : Line 0,ScrollY#+6,Sx%,ScrollY#+6
  100.                                                                                                
  101.                 Color 0,29,52
  102.                 Rect 0,0,Sx%,50,1
  103.                 Rect 0,Sy%-50,Sx%,50,1
  104.                
  105.                 Color 0,69,112
  106.                 Text Sx%/2,Sy%-25,"Press <up><down> / <left><right>",True,True
  107.                                
  108.                 ; ---
  109.                 ; Bar
  110.                 ; ---
  111.                 Color 0,128,192
  112.                 Rect 0,110,Sx%,Size%,1
  113.  
  114.                 Color 20,169,192
  115.                 Rect 0,110,Sx%,Size%,0
  116.                
  117.                 Viewport 0, 60, Sx%, Sy%-120
  118.  
  119.                 ; -------
  120.                 ; Refresh
  121.                 ; -------
  122.                 C%=0
  123.                 Y%=101
  124.                                                                                
  125.                 For d.tMode =Each tMode
  126.  
  127.                         C%=C%+Size%
  128.  
  129.                         If dId%=Current% Then  
  130.                                 Color 255,128,0
  131.                                
  132.                                 If KeyHit(203) Then
  133.                                         dMode%=1
  134.                                 EndIf
  135.                                
  136.                                 If KeyHit(205) Then
  137.                                         dMode%=2
  138.                                 EndIf
  139.                         Else
  140.                                 Color 168,54,0
  141.                         EndIf
  142.  
  143.                         Text 70,Y%+C%-O%,dWidth%,True,True
  144.                         Text 105,Y%+C%-O%,"/",True,True
  145.                         Text 140,Y%+C%-O%,dHeight%,True,True
  146.                                                
  147.                         Text 190,Y%+C%-O%,dDepth%,True,True
  148.                         Text 220,Y%+C%-O%,"Bits",True,True
  149.                        
  150.                         Select dMode%
  151.                                 Case 1
  152.                                         Caption$="Screen"
  153.                                 Case 2
  154.                                         Caption$="Windowed"
  155.                         End Select
  156.  
  157.  
  158.                         Text 300,Y%+C%-O%,Caption$,True,True
  159.  
  160.                 Next
  161.                
  162.                
  163.  
  164.                 If KeyHit(200) Then
  165.                         If Current%>1 Then
  166.                                 O%=O%-Size%
  167.                                
  168.                                 Current%=Current%-1
  169.                         EndIf
  170.                 EndIf
  171.  
  172.                 If KeyHit(208) Then
  173.                         If Current%<Total% Then
  174.                                 O%=O%+Size%
  175.                                
  176.                                 Current%=Current%+1
  177.                         EndIf
  178.                 EndIf
  179.  
  180.  
  181.                        
  182.                 If KeyHit(28)
  183.                         For e.tMode =Each tMode
  184.                                 If eId=Current% Then
  185.                                
  186.                                         Graphics3D eWidth%,eHeight%,eDepth%,eMode%
  187.                                         Return True
  188.                        
  189.                                 EndIf
  190.                         Next
  191.                 EndIf          
  192.                        
  193.                 Flip
  194.         Forever
  195.  
  196. End Function


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal