⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svgamod2.bas

📁 Quick Basic DOS Compilers
💻 BAS
📖 第 1 页 / 共 3 页
字号:
    DRWSTRING 1, 7, 0, A$, 10, 32
    SETVIEW 0, 32, GETMAXX, GETMAXY
    FOR J = 0 TO 360 STEP 3
        D3ROTATE 10, 0, 0, 0, 0, J, J, POINTARRY3D(0).X, PLAYARRY(0).X
        R = D3PROJECT(10, PROJ.EYEX, PLAYARRY(0).X, PLOTARRY(0).X)
        SHOWHOUSE
        SDELAY 2
    NEXT J
    GETKEY RET$
    IF (RET$ = "S") OR (RET$ = "Q") THEN
        FILLSCREEN 0
        SETVIEW 0, 0, GETMAXX, GETMAXY
        EXIT SUB
    END IF



    END SUB

    SUB DOJOYSTICK (RET$)
    DEFINT A-Z
    REM $DYNAMIC
 
    '*************************************************************************
    '* SET UP THE TITLE
    '*************************************************************************
    TITLE$ = "DEMO 10: Joystick functions"
    PALSET PAL, 0, 255
    FILLSCREEN 0
    SETVIEW 0, 0, GETMAXX, GETMAXY

    '*************************************************************************
    '* CHECK TO SEE IF WE HAVE A JOYSTICK SO WE CAN DO THE JOYSTICK DEMO
    '*************************************************************************
    JOYSTICK = WHICHJOYSTICK
    IF JOYSTICK < 1 THEN
        SOUND 100, 5
        DRWSTRING 1, 7, 0, TITLE$, 10, 0
        A$ = "Sorry, No Joystick Detected..."
        DRWSTRING 1, 7, 0, A$, 10, 16
        A$ = "Can Not Do The Joystick Demo."
        DRWSTRING 1, 7, 0, A$, 10, 32
        A$ = "Press A Key..."
        DRWSTRING 1, 15, 0, A$, 10, 48
        WHILE INKEY$ = ""
        WEND
        FILLSCREEN 0
        EXIT SUB
    END IF

    '*************************************************************************
    '* SHOW JOYSTICKINFO (HERE WE DO SOME JOYSTICK CALIBRATION)
    '*************************************************************************
    DRWSTRING 1, 7, 0, TITLE$, 10, 0
    A$ = "JOYSTICKINFO (JAX,JAY,JAButs,JBX,JBY,JBButs)"
    DRWSTRING 1, 7, 0, A$, 10, 16
    SETVIEW 0, 0, GETMAXX, GETMAXY
    SELECT CASE JOYSTICK
        CASE IS = 1
            A$ = "Please Move Joystick A As Far As It Will Go In All Directions"
        CASE IS = 2
            A$ = "Please Move Joystick B As Far As It Will Go In All Directions"
        CASE IS = 3
            A$ = "Please Move Both Joystick A And B As Far As They Will Go In All Directions"
    END SELECT
    DRWSTRING 1, 7, 0, A$, 10, 32
    A$ = "And Then Press A Key..."
    DRWSTRING 1, 7, 0, A$, 10, 48
    SOUND 700, .75
    GETMAXXA = -1
    MAXYA = -1
    MINXA = 10000
    MINYA = 10000
    GETMAXXB = -1
    MAXYB = -1
    MINXB = 10000
    MINYB = 10000
    A$ = ""
    WHILE A$ = ""
        JOYSTICKINFO JAX, JAY, JAButs, JBX, JBY, JBButs
        IF JAX > GETMAXXA THEN
            GETMAXXA = JAX
        END IF
        IF JAX < MINXA THEN
            MINXA = JAX
        END IF
        IF JAY > MAXYA THEN
            MAXYA = JAY
        END IF
        IF JAY < MINYA THEN
            MINYA = JAY
        END IF
        IF JBX > GETMAXXB THEN
            GETMAXXB = JBX
        END IF
        IF JBX < MINXB THEN
            MINXB = JBX
        END IF
        IF JBY > MAXYB THEN
            MAXYB = JBY
        END IF
        IF JBY < MINYB THEN
            MINYB = JBY
        END IF
        A$ = INKEY$
    WEND

    '*************************************************************************
    '* CALCULATE THE CENTER AND STUFF...
    '*************************************************************************
    SPCNG = GETMAXX \ 7
    DIST = SPCNG * 2
    X1 = SPCNG \ 2
    Y1 = SPCNG \ 2 + 32
    X2 = X1 + DIST
    Y2 = Y1 + DIST
    X4 = GETMAXX - SPCNG
    Y4 = Y2
    X3 = X4 - DIST
    Y3 = Y1
    CNTAX = (X2 - X1) / 2 + X1
    CNTAY = (Y2 - Y1) / 2 + Y1
    CNTBX = (X4 - X3) / 2 + X3
    CNTBY = (Y4 - Y3) / 2 + Y3
    RANGEXA = GETMAXXA - MINXA
    RANGEYA = MAXYA - MINYA
    RANGEXB = GETMAXXB - MINXB
    RANGEYB = MAXYB - MINYB
    JABAX = (X2 - X1) \ 4 + X1 - 16
    JABAY = (SPCNG \ 4) + Y2 - 6
    JABBX = X2 - (X2 - X1) \ 4 - 16
    JABBY = (SPCNG \ 4) + Y2 - 6
    JBBAX = (X4 - X3) \ 4 + X3 - 16
    JBBAY = (SPCNG \ 4) + Y4 - 6
    JBBBX = X4 - (X4 - X3) \ 4 - 16
    JBBBY = (SPCNG \ 4) + Y4 - 6

    '*************************************************************************
    '* LETS MOVE IT (OR THEM) AROUND
    '*************************************************************************
    SETVIEW 0, 0, GETMAXX, 64
    FILLVIEW 0
    SETVIEW 0, 0, GETMAXX, GETMAXY
    IF JOYSTICK AND 1 THEN
        DRWBOX 1, 15, X1 - 1, Y1 - 1, X2 + 1, Y2 + 1
        DRWBOX 1, 15, X1 - 1, Y2 + 1, X2 + 1, Y2 + SPCNG \ 2
        DRWLINE 1, 15, (X2 - X1) \ 2 + X1, Y2 + 1, (X2 - X1) \ 2 + X1, Y2 + SPCNG \ 2
        OAX = CNTAX
        OAY = CNTAY
        DRWLINE 1, 10, CNTAX, CNTAY, OAX, OAY
    ELSE
        DRWBOX 1, 8, X1 - 1, Y1 - 1, X2 + 1, Y2 + 1
        DRWBOX 1, 8, X1 - 1, Y2 + 1, X2 + 1, Y2 + SPCNG \ 2
        DRWLINE 1, 8, (X2 - X1) \ 2 + X1, Y2 + 1, (X2 - X1) \ 2 + X1, Y2 + SPCNG \ 2
    END IF
    IF JOYSTICK AND 2 THEN
        DRWBOX 1, 15, X3 - 1, Y3 - 1, X4 + 1, Y4 + 1
        DRWBOX 1, 15, X3 - 1, Y4 + 1, X4 + 1, Y4 + SPCNG \ 2
        DRWLINE 1, 15, (X4 - X3) \ 2 + X3, Y4 + 1, (X4 - X3) \ 2 + X3, Y4 + SPCNG \ 2
        OBX = CNTBX
        OBY = CNTBY
        DRWLINE 1, 10, CNTBX, CNTBY, OBX, OBY
    ELSE
        DRWBOX 1, 8, X3 - 1, Y3 - 1, X4 + 1, Y4 + 1
        DRWBOX 1, 8, X3 - 1, Y3 + 1, X4 + 1, Y4 + SPCNG \ 2
        DRWLINE 1, 8, (X4 - X3) \ 2 + X3, Y4 + 1, (X4 - X3) \ 2 + X3, Y4 + SPCNG \ 2
    END IF
    DRWSTRING 1, 7, 0, TITLE$, 10, 0
    A$ = "JOYSTICKINFO (JAX,JAY,JAButs,JBX,JBY,JBButs)"
    DRWSTRING 1, 7, 0, A$, 10, 16
    SETVIEW 0, 32, GETMAXX, GETMAXY
    A$ = ""
    WHILE A$ = ""
        JOYSTICKINFO JAX, JAY, JAButs, JBX, JBY, JBButs
        IF JOYSTICK AND 1 THEN
            SETVIEW X1, Y1, X2, Y2
            JAX = JAX - MINXA
            JAX = JAX / RANGEXA * DIST + X1
            JAY = JAY - MINYA
            JAY = JAY / RANGEYA * DIST + Y1
            DRWLINE 1, 0, CNTAX, CNTAY, OAX, OAY
            OAX = JAX
            OAY = JAY
            DRWLINE 1, 10, CNTAX, CNTAY, OAX, OAY
            SETVIEW 0, 0, GETMAXX, GETMAXY
            IF JAButs AND 1 THEN
                DRWSTRING 1, 10, 0, "ButA", JABAX, JABAY
            ELSE
                DRWSTRING 1, 8, 0, "ButA", JABAX, JABAY
            END IF
            IF JAButs AND 2 THEN
                DRWSTRING 1, 10, 0, "ButB", JABBX, JABBY
            ELSE
                DRWSTRING 1, 8, 0, "ButB", JABBX, JABBY
            END IF
        END IF
        IF JOYSTICK AND 2 THEN
            SETVIEW X3, Y3, X4, Y4
            JBX = JBX - MINXB
            JBX = JBX / RANGEXB * DIST + X3
            JBY = JBY - MINYB
            JBY = JBY / RANGEYB * DIST + Y3
            DRWLINE 1, 0, CNTBX, CNTBY, OBX, OBY
            OBX = JBX
            OBY = JBY
            DRWLINE 1, 10, CNTBX, CNTBY, OBX, OBY
            SETVIEW 0, 0, GETMAXX, GETMAXY
            IF JBButs AND 1 THEN
                DRWSTRING 1, 10, 0, "ButA", JBBAX, JBBAY
            ELSE
                DRWSTRING 1, 8, 0, "ButA", JBBAX, JBBAY
            END IF
            IF JBButs AND 2 THEN
                DRWSTRING 1, 10, 0, "ButB", JBBBX, JBBBY
            ELSE
                DRWSTRING 1, 8, 0, "ButB", JBBBX, JBBBY
            END IF
        END IF
        A$ = INKEY$
    WEND
    RET$ = A$
    IF RET$ = "q" THEN
        RET$ = "Q"
    END IF
    IF RET$ = "s" THEN
        RET$ = "S"
    END IF
    IF (RET$ = "S") OR (RET$ = "Q") THEN
        FILLSCREEN 0
        SETVIEW 0, 0, GETMAXX, GETMAXY
        EXIT SUB
    END IF

    SETVIEW 0, 0, GETMAXX, GETMAXY

    END SUB

    SUB DOMOUSE (RET$)
    DEFINT A-Z
    REM $DYNAMIC
 
    '*************************************************************************
    '* SET UP THE TITLE
    '*************************************************************************
    TITLE$ = "DEMO 9: Mouse functions"
    FILLSCREEN 0
    PALSET PAL, 0, 255
    SETVIEW 0, 0, GETMAXX, GETMAXY

    '*************************************************************************
    '* CHECK TO SEE IF WE HAVE A MOUSE SO WE CAN DO THE MOUSE DEMO
    '*************************************************************************
    MOUSE = WHICHMOUSE
    IF MOUSE < 1 THEN
        SOUND 100, 5
        DRWSTRING 1, 7, 0, TITLE$, 10, 0
        A$ = "Sorry, No Mouse Detected..."
        DRWSTRING 1, 7, 0, A$, 10, 16
        A$ = "Can Not Do The Mouse Demo."
        DRWSTRING 1, 7, 0, A$, 10, 32
        A$ = "Press A Key..."
        DRWSTRING 1, 15, 0, A$, 10, 48

        WHILE INKEY$ = ""
        WEND
        FILLSCREEN 0
        EXIT SUB
    ELSE
        Colr = 16
        FOR I = 0 TO GETMAXX \ 2
            DRWCIRCLE 1, Colr, GETMAXX \ 4 + I, GETMAXY \ 2, GETMAXY \ 5
            Colr = Colr + 2
            IF Colr > 255 THEN
                Colr = 16
            END IF
        NEXT I
    END IF

    '*************************************************************************
    '* SHOW MOUSESHOW
    '*************************************************************************
    SETVIEW 0, 0, GETMAXX, 31
    FILLVIEW 0
    DRWSTRING 1, 7, 0, TITLE$, 10, 0
    A$ = "MOUSESHOW ()"
    DRWSTRING 1, 7, 0, A$, 10, 16
    SETVIEW 0, 32, GETMAXX, GETMAXY
    MOUSEENTER '*MUST BE CALLED FIRST TO ENABLE MOUSE FUNCTIONS
    MOUSESHOW
    GETKEY RET$
    IF (RET$ = "S") OR (RET$ = "Q") THEN
        MOUSEEXIT '*MUST BE CALLED TO DISABLE MOUSE FUNCTIONS
        FILLSCREEN 0
        SETVIEW 0, 0, GETMAXX, GETMAXY
        EXIT SUB
    END IF

    '*************************************************************************
    '* SHOW MOUSESTATUS
    '*************************************************************************
    MOUSEHIDE
    SETVIEW 0, 0, GETMAXX, 31
    FILLVIEW 0
    DRWSTRING 1, 7, 0, TITLE$, 10, 0
    A$ = "MOUSESTATUS (Xloc,Yloc,MButs)"
    DRWSTRING 1, 7, 0, A$, 10, 16
    MOUSESHOW
    SETVIEW 0, 32, GETMAXX, GETMAXY
    A$ = ""
    SOUND 700, .75
    WHILE A$ = ""
        MOUSESTATUS X, Y, MButs
        IF MButs AND 1 THEN
            LB = 1
        ELSE
            LB = 0
        END IF
        IF MButs AND 2 THEN
            RB = 1
        ELSE
            RB = 0
        END IF
        IF MButs AND 4 THEN
            CB = 1
        ELSE
            CB = 0
        END IF
        D$ = "X=" + STR$(X)
        L = LEN(D$)
        IF L < 10 THEN
            D$ = D$ + STRING$(8 - L, 32)
        END IF
        D$ = D$ + "Y=" + STR$(Y)
        L = LEN(D$)
        IF L < 20 THEN
            D$ = D$ + STRING$(16 - L, 32)
        END IF
        D$ = D$ + "LB=" + STR$(LB) + "  CB=" + STR$(CB) + "  RB=" + STR$(RB)
        DRWSTRING 1, 15, 8, D$, 10, 32
        A$ = INKEY$
    WEND
    RET$ = A$
    IF RET$ = "q" THEN
        RET$ = "Q"
    END IF
    IF RET$ = "s" THEN
        RET$ = "S"
    END IF
    IF (RET$ = "S") OR (RET$ = "Q") THEN
        MOUSEEXIT '*MUST BE CALLED TO DISABLE MOUSE FUNCTIONS
        FILLSCREEN 0
        SETVIEW 0, 0, GETMAXX, GETMAXY
        EXIT SUB
    END IF

    '*************************************************************************
    '* SHOW MOUSEHIDE
    '*************************************************************************
    MOUSEHIDE
    SETVIEW 0, 0, GETMAXX, 31
    FILLVIEW 0
    SETVIEW 0, 0, GETMAXX, GETMAXY
    DRWSTRING 1, 7, 0, TITLE$, 10, 0
    A$ = "MOUSEHIDE ()"
    DRWSTRING 1, 7, 0, A$, 10, 16
    SETVIEW 0, 32, GETMAXX, GETMAXY
    A$ = ""
    SOUND 700, .75
    WHILE A$ = ""
        MOUSESTATUS X, Y, MButs
        IF MButs AND 1 THEN
            LB = 1
        ELSE
            LB = 0
        END IF
        IF MButs AND 2 THEN
            RB = 1
        ELSE
            RB = 0
        END IF
        IF MButs AND 4 THEN
            CB = 1
        ELSE
            CB = 0
        END IF
        D$ = "X=" + STR$(X)
        L = LEN(D$)
        IF L < 10 THEN
            D$ = D$ + STRING$(8 - L, 32)
        END IF
        D$ = D$ + "Y=" + STR$(Y)
        L = LEN(D$)
        IF L < 20 THEN
            D$ = D$ + STRING$(16 - L, 32)
        END IF
        D$ = D$ + "LB=" + STR$(LB) + "  CB=" + STR$(CB) + "  RB=" + STR$(RB)
        DRWSTRING 1, 15, 8, D$, 10, 32
        A$ = INKEY$
    WEND
    MOUSESHOW
    RET$ = A$
    IF RET$ = "q" THEN
        RET$ = "Q"
    END IF
    IF RET$ = "s" THEN
        RET$ = "S"
    END IF
    IF (RET$ = "S") OR (RET$ = "Q") THEN
        MOUSEEXIT '*MUST BE CALLED TO DISABLE MOUSE FUNCTIONS
        FILLSCREEN 0
        SETVIEW 0, 0, GETMAXX, GETMAXY
        EXIT SUB
    END IF

    '*************************************************************************
    '* SHOW MOUSERANGESET

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -