home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD 60 / supercd60_2.iso / BlitzBasic / inputtest / cleancode.bb next >
Encoding:
Text File  |  2001-10-15  |  3.2 KB  |  169 lines

  1. ; INPUTEST.BB
  2. ; ================================================================================
  3. ; INITIALISATION
  4.  
  5. Graphics 640, 480
  6. AppTitle "Basic Graphics/Input Test"
  7. SetBuffer BackBuffer()
  8.  
  9. ; CONSTANTS
  10.  
  11. Const c_ArrowFlash = 4
  12. Const k_NumPad8 = 72
  13. Const k_NumPad4 = 75
  14. Const k_NumPad6 = 77
  15.  
  16. ; OBJECTS 
  17.  
  18. Global g_Dancer = LoadAnimImage("media\dancer.bmp", 220, 326, 0, 5)
  19. Global g_LeftArrow = LoadImage("media\leftarrow.bmp")
  20. Global g_RightArrow = LoadImage("media\rightarrow.bmp")
  21. Global g_UpArrow = LoadImage("media\uparrow.bmp")
  22.  
  23. Global g_Background = LoadAnimImage("media\back_flip.bmp", 536, 261, 0, 2)
  24.  
  25. Global g_DanceFloor = LoadAnimImage("media\dancefloor.bmp", 299, 81, 0, 3)
  26. Global v_DanceFloorStep, v_DanceCount, v_DanceFloorSpeed=15
  27.  
  28. Global v_LeftArrowPressed=0, v_RightArrowPressed=0, v_UpArrowPressed=0, v_DownArrowPressed=0
  29. Global v_BackTimer=0
  30. Global v_PoseTimer=0, v_NeutralTimer=0
  31.  
  32. Global s_BackgroundMusic = LoadSound ("media\bgm.wav")
  33.  
  34. ; STARTING SPRITES
  35.  
  36. MaskImage g_Dancer, 255, 0, 255
  37.  
  38. ; CUE MUSIC
  39.  
  40. LoopSound s_BackgroundMusic
  41.  
  42. ; MAIN LOOP
  43.  
  44. While Not KeyHit(1)
  45.  
  46.     ; Draw Background
  47.     DrawImage g_Background, 50, 50, BackSetting
  48.  
  49.     ; Lighting
  50.  
  51.     If Backtimer>50 Then
  52.         BackSetting=0
  53.             Else
  54.                 BackSetting=1
  55.                 EndIf
  56.                 
  57.         BackTimer=BackTimer+1
  58.  
  59.         If BackTimer=100 Then
  60.             BackTimer=0
  61.             EndIf 
  62.             
  63.     ; DanceFloor
  64.  
  65.     DrawImage g_DanceFloor, 150,400, v_DanceFloorStep
  66.     
  67.     If v_DanceFloorCount=v_DanceFloorSpeed Then
  68.     
  69.         If v_DanceFloorStep=2 Then
  70.             v_DanceFloorStep=0
  71.                 Else
  72.                     v_DanceFloorStep=v_DanceFloorStep+1
  73.                     EndIf
  74.         
  75.         v_DanceFloorCount=0
  76.         
  77.         Else
  78.             v_DanceFloorCount=v_DanceFloorCount+1
  79.         EndIf
  80.         
  81.     ; Dancer
  82.  
  83.     DrawImage g_Dancer, 220, 110, v_PoseSelect
  84.  
  85.     ; Draw Arrows
  86.     
  87.         If v_LeftArrowPressed>0
  88.             DrawImage g_LeftArrow, 135, 210
  89.             v_LeftArrowPressed=v_LeftArrowPressed-1
  90.             Else
  91.                 DrawImage g_LeftArrow, 140, 210, 0
  92.             EndIf
  93.  
  94.     
  95.         If v_RightArrowPressed>0
  96.             DrawImage g_RightArrow, 420, 210
  97.             v_RightArrowPressed=v_RightArrowPressed-1
  98.             Else
  99.                 DrawImage g_RightArrow, 415, 210, 0
  100.             EndIf
  101.  
  102.     
  103.         If v_UpArrowPressed>0
  104.             DrawImage g_UpArrow, 257, 50
  105.             v_UpArrowPressed=v_UpArrowPressed-1
  106.             Else
  107.                 DrawImage g_UpArrow, 257, 55, 0
  108.             EndIf
  109.  
  110.     ; INPUT
  111.         
  112.     If PoseTimer=0
  113.     
  114.         If KeyHit (k_NumPad4) And v_LeftArrowPressed=0
  115.             v_LeftArrowPressed=c_ArrowFlash
  116.             v_NeutralTimer=15
  117.             v_PoseSelect=2
  118.             EndIf
  119.         
  120.         If KeyHit (k_NumPad6) And v_RightArrowPressed=0
  121.             v_RightArrowPressed=c_ArrowFlash
  122.             v_NeutralTimer=15
  123.             v_PoseSelect=3
  124.             EndIf
  125.     
  126.         If KeyHit (k_NumPad8) And v_UpArrowPressed=0
  127.             v_UpArrowPressed=c_ArrowFlash
  128.             v_NeutralTimer=15
  129.             v_PoseSelect=4
  130.             EndIf
  131.         
  132.         Else
  133.         
  134.     EndIf        
  135.             
  136.     
  137.     ; Time the pose
  138.             
  139.     If v_PoseSelect>1 And v_NeutralTimer=0 Then
  140.         v_PoseSelect=0
  141.             Else If v_PoseSelect>1
  142.                     v_NeutralTimer=v_NeutralTimer-1
  143.                     EndIf
  144.                                 
  145.     ; Neutral poses
  146.  
  147.     If v_PoseSelect=0 Or v_PoseSelect=1
  148.         v_NeutralTimer=v_NeutralTimer+1
  149.         EndIf
  150.                      
  151.     If v_PoseSelect=0 And v_NeutralTimer=30 Then
  152.               v_NeutralTimer=0
  153.             v_PoseSelect=1
  154.             EndIf
  155.             
  156.     If v_PoseSelect=1 And v_NeutralTimer=30 Then
  157.             v_NeutralTimer=0
  158.             v_PoseSelect=0
  159.             EndIf
  160.     
  161.     ; DISPLAY
  162.     
  163.     Flip
  164.     Cls
  165.     
  166.     Wend
  167.  
  168. End