home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Basic / Q_BASIC.450 / DEMO2.BAS < prev    next >
BASIC Source File  |  1989-08-06  |  2KB  |  81 lines

  1. DECLARE SUB Bounce (Hi%, Low%)
  2. DECLARE SUB Fall (Hi%, Low%, Del%)
  3. DECLARE SUB Siren (Hi%, Rng%)
  4. DECLARE SUB Klaxon (Hi%, Low%)
  5. DEFINT A-Z
  6. ' QB2 Version of Sound Effects Demo Program
  7. '   (works under most other BASIC compilers)
  8.  
  9. ' Sound effects menu
  10. WHILE Q$ <> "Q"
  11.     CLS
  12.     PRINT "Sound effects": PRINT
  13.     COLOR 15, 0: PRINT "  B"; : COLOR 7, 0: PRINT "ouncing"
  14.     COLOR 15, 0: PRINT "  F"; : COLOR 7, 0: PRINT "alling"
  15.     COLOR 15, 0: PRINT "  K"; : COLOR 7, 0: PRINT "laxon"
  16.     COLOR 15, 0: PRINT "  S"; : COLOR 7, 0: PRINT "iren"
  17.     COLOR 15, 0: PRINT "  Q"; : COLOR 7, 0: PRINT "uit"
  18.     PRINT : PRINT "Select: ";
  19.  
  20.     ' Get valid key
  21.     Q$ = " "
  22.     WHILE INSTR("BFKSQbfksq", Q$) = 0
  23.         Q$ = INPUT$(1)
  24.     WEND
  25.  
  26.     ' Take action based on key
  27.     CLS
  28.     IF Q$ = "B" OR Q$ = "b" THEN
  29.         PRINT "Bouncing . . . "
  30.         CALL Bounce(32767, 246)
  31.     ELSEIF Q$ = "F" OR Q$ = "f" THEN
  32.         PRINT "Falling . . . "
  33.         CALL Fall(2000, 550, 500)
  34.     ELSEIF Q$ = "S" OR Q$ = "s" THEN
  35.         PRINT "Wailing . . ."
  36.         PRINT " . . . press any key to end."
  37.         CALL Siren(780, 650)
  38.     ELSEIF Q$ = "K" OR Q$ = "k" THEN
  39.         PRINT "Oscillating . . ."
  40.         PRINT " . . . press any key to end."
  41.         CALL Klaxon(987, 329)
  42.     ELSEIF Q$ = "q" THEN
  43.         Q$ = "Q"
  44.     END IF
  45. WEND
  46. END
  47.  
  48. ' Loop two sounds down at decreasing time intervals
  49. SUB Bounce (Hi, Low) STATIC
  50.     FOR Count = 60 TO 1 STEP -2
  51.         SOUND Low - Count / 2, Count / 20
  52.         SOUND Hi, Count / 15
  53.     NEXT
  54. END SUB
  55.  
  56. ' Loop down from a high sound to a low sound
  57. SUB Fall (Hi, Low, Del) STATIC
  58.     FOR Count = Hi TO Low STEP -10
  59.         SOUND Count, Del / Count
  60.     NEXT
  61. END SUB
  62.  
  63. ' Alternate two sounds until a key is pressed
  64. SUB Klaxon (Hi, Low) STATIC
  65.     WHILE INKEY$ = ""
  66.         SOUND Hi, 5
  67.         SOUND Low, 5
  68.     WEND
  69. END SUB
  70.  
  71. ' Loop a sound from low to high to low
  72. SUB Siren (Hi, Rng) STATIC
  73.     WHILE INKEY$ = ""
  74.         FOR Count = Rng TO -Rng STEP -4
  75.             SOUND Hi - ABS(Count), .3
  76.             Count = Count - 2 / Rng
  77.         NEXT
  78.     WEND
  79. END SUB
  80.  
  81.