home *** CD-ROM | disk | FTP | other *** search
- '******************************3DSHADOW.BAS********************************
- 'JRD NOTE:
- '
- 'Got the shadow idea from a high school kid's program....
- '
- 'John De Palma on CompuServe
- 'Mon 03-21-94 00:51:00
- '
- 'Declarations
- DEFINT A-Z
- DECLARE SUB TextBox (Row%, Col%, Message$, Outline%, Length%)
- DECLARE SUB PauseClick ()
- DECLARE SUB LocateIt (Row%, text$)
- DECLARE SUB TwoColrs (Fgd%, Bkg%, Colr%)
- DECLARE SUB CursorOff ()
-
- DECLARE FUNCTION Center% (text$)
- DECLARE FUNCTION OneColr% (Fgd%, Bkg%)
-
- 'Executable code
-
- COLOR 15, 1
- CLS
- CursorOff
-
- FOR i = 1 TO 24
- PRINT STRING$(80, 96 + i);
- PLAY "p32"
- NEXT
-
-
- COLOR 14, 3
- Message$ = SPACE$(40)
- CALL TextBox(10, 4, Message$, 5, 2)
- text$ = "PRESS {Enter} ─┘ to see a new Screen"
- LOCATE 12, 8: PRINT text$
- PauseClick
-
- COLOR 15, 4
- Message$ = "How to make a 3-D Shadow Box"
- CALL TextBox(4, 0, Message$, 4, 0)
- PauseClick
-
- COLOR 11, 0
- Message$ = "Using the SCREEN Function"
- CALL TextBox(20, 0, Message$, 2, 0)
- PauseClick
-
- COLOR 14, 2
- Message$ = "Program by John De Palma"
- CALL TextBox(9, 32, Message$, 3, 0)
- PauseClick
-
- COLOR 14, 4
- Message$ = "With some High School Help!"
- CALL TextBox(14, 38, Message$, 1, 0)
- PauseClick
-
- COLOR 10, 3
- text$ = "DATE: " + DATE$ + " Time: " + TIME$
- Message$ = SPACE$(LEN(text$) \ 2)
- CALL TextBox(2, 50, Message$, 0, 1)
- LOCATE 3, 52: PRINT "DATE: "; DATE$
- LOCATE 4, 52: PRINT "Time: "; TIME$
- PauseClick
-
- COLOR 12, 4
- Message$ = "Thanks for Watchin'"
- CALL TextBox(18, 4, Message$, 0, 0)
- PauseClick
-
- COLOR 7, 0
-
- FUNCTION Center% (text$)
- Center% = 41 - LEN(text$) \ 2
- END FUNCTION
-
- SUB CursorOff
- LOCATE , , 0
- END SUB
-
- SUB LocateIt (Row%, text$)
- LOCATE Row%, Center(text$)
- PRINT text$;
- END SUB
-
- DEFINT A-Z
- FUNCTION OneColr% (Fgd%, Bkg%)
- OneColr% = (Fgd% AND 16) * 8 + ((Bkg% AND 7) * 16 + (Fgd% AND 15))
- END FUNCTION
-
- DEFINT A-Z
- SUB PauseClick
- WHILE INKEY$ <> "": WEND
- WHILE INKEY$ = "": WEND
- PLAY "P32"
- END SUB
-
- SUB TextBox (Row%, Col%, Message$, Outline%, Length%)
-
- 'Will put a message into a three line box -or-
- 'draw a box without a message using Message$=SPACE$(x)
- 'where "x" is the width of the box and Length%= number of lines > 3
- 'All boxes are centered.
- 'Now to make them non centered....
-
- Message$ = LEFT$(Message$, 60)
- BoxWidth% = LEN(Message$) + 4
- SELECT CASE Outline%
- CASE 0
- j = 8 * 5 + 1
- CASE 1
- j = 1
- CASE 2
- j = 8 + 1
- CASE 3
- j = 8 * 2 + 1
- CASE 4
- j = 8 * 3 + 1
- CASE 5
- j = 8 * 4 + 1
- CASE ELSE
- j = 8 * 5 + 1
- END SELECT
-
- 'if you use a lot of boxes put this in the main module as:
- 'DIM SHARED Box$(1 to 8 * 6)
- REDIM Box$(1 TO 8 * 6)
-
- 'single line box
- Box$(1) = "┌"
- Box$(2) = "─"
- Box$(3) = "┐"
- Box$(4) = "│"
- Box$(5) = "│"
- Box$(6) = "└"
- Box$(7) = "─"
- Box$(8) = "┘"
-
- 'double top box
- Box$(9) = "╒"
- Box$(10) = "═"
- Box$(11) = "╕"
- Box$(12) = "│"
- Box$(13) = "│"
- Box$(14) = "╘"
- Box$(15) = "═"
- Box$(16) = "╛"
-
- 'double side box
- Box$(17) = "╓"
- Box$(18) = "─"
- Box$(19) = "╖"
- Box$(20) = "║"
- Box$(21) = "║"
- Box$(22) = "╙"
- Box$(23) = "─"
- Box$(24) = "╜"
-
- 'double box
- Box$(25) = "╔"
- Box$(26) = "═"
- Box$(27) = "╗"
- Box$(28) = "║"
- Box$(29) = "║"
- Box$(30) = "╚"
- Box$(31) = "═"
- Box$(32) = "╝"
-
- 'bold and thick box
- Box$(33) = "█"
- Box$(34) = "▀"
- Box$(35) = "█"
- Box$(36) = "█"
- Box$(37) = "█"
- Box$(38) = "█"
- Box$(39) = "▄"
- Box$(40) = "█"
-
- 'no box
- Box$(41) = " "
- Box$(42) = " "
- Box$(43) = " "
- Box$(44) = " "
- Box$(45) = " "
- Box$(46) = " "
- Box$(47) = " "
- Box$(48) = " "
-
- IF Col% = 0 THEN
-
- BoxText$ = Box$(j) + STRING$(BoxWidth%, Box$(j + 1)) + Box$(j + 2)
- CALL LocateIt(Row%, BoxText$)
- Row2% = CSRLIN: Col2% = POS(0)
- Colr% = SCREEN(Row2%, Col2% - 1, 1)
- CALL TwoColrs(Fgd%, Bkg%, Colr%)
-
- FOR i = 1 TO Length% + 1
- BoxText$ = Box$(j + 3) + " " + Message$ + " " + Box$(j + 4)
- CALL LocateIt(Row% + i, BoxText$)
- COLOR 8, 0
- FOR k = 1 TO 2
- PRINT CHR$(SCREEN(CSRLIN, POS(0)));
- NEXT
- COLOR Fgd%, Bkg%
- NEXT i
-
- BoxText$ = Box$(j + 5) + STRING$(BoxWidth%, Box$(j + 6)) + Box$(j + 7)
- CALL LocateIt(Row% + i, BoxText$)
- COLOR 8, 0
- FOR k = 1 TO 2
- PRINT CHR$(SCREEN(CSRLIN, POS(0)));
- NEXT
- 'COLOR Fgd%, Bkg%
-
- COLOR 8, 0
- LOCATE Row% + i + 1, Center(BoxText$) + 2
- FOR k = 1 TO BoxWidth% + 2
- PRINT CHR$(SCREEN(CSRLIN, POS(0)));
- NEXT
- COLOR Fgd%, Bkg%
-
- ELSE
-
- BoxText$ = Box$(j) + STRING$(BoxWidth%, Box$(j + 1)) + Box$(j + 2)
- LOCATE Row%, Col%
- PRINT BoxText$;
- Row2% = CSRLIN: Col2% = POS(0)
- Colr% = SCREEN(Row2%, Col2% - 1, 1)
- CALL TwoColrs(Fgd%, Bkg%, Colr%)
-
- FOR i = 1 TO Length% + 1
- BoxText$ = Box$(j + 3) + " " + Message$ + " " + Box$(j + 4)
- LOCATE Row% + i, Col%
- PRINT BoxText$;
- COLOR 8, 0
- FOR k = 1 TO 2
- PRINT CHR$(SCREEN(CSRLIN, POS(0)));
- NEXT
- COLOR Fgd%, Bkg%
- NEXT i
-
- BoxText$ = Box$(j + 5) + STRING$(BoxWidth%, Box$(j + 6)) + Box$(j + 7)
- LOCATE Row% + i, Col%
- PRINT BoxText$;
- COLOR 8, 0
- FOR k = 1 TO 2
- PRINT CHR$(SCREEN(CSRLIN, POS(0)));
- NEXT
- 'COLOR Fgd%, Bkg%
- 'COLOR 8, 0
- LOCATE Row% + i + 1, Col% + 2
- FOR k = 1 TO BoxWidth% + 2
- PRINT CHR$(SCREEN(CSRLIN, POS(0)));
- NEXT
- COLOR Fgd%, Bkg%
-
- END IF
- END SUB
-
- DEFINT A-Z
- SUB TwoColrs (Fgd%, Bkg%, Colr%)
-
- Fgd% = (Colr% AND 128) \ 8 + (Colr% AND 15)
- Bkg% = (Colr% AND 112) \ 16
-
- END SUB
-
-