跳轉到內容

QBasic/高階圖形

來自華夏公益教科書,自由的教科書

基本移動

[編輯 | 編輯原始碼]

動畫本質上是指在固定時間段內變化的圖形。我們將使用一個 do-loop 來實現。

SCREEN 7  ' we need to use a graphics enabled screen mode
animation   'calling the sub


SUB animation
    SCREEN 7
    x = 10 'set first x- coordinate
    y = 10 'set first y-coordinate
    DO
        CLS ' going back to a blank screen so that the previous rectangle is erased
        x = x + 3  ' setting increment of coordinate x
        y = y + 3   ' setting increment of coordinate y

        LINE (x, y)-(x + 5, y) 'drawing lines
        LINE (x, y + 5)-(x + 5, y + 5)
        LINE (x, y)-(x, y + 5)
        LINE (x + 5, y)-(x + 5, y + 5)

        SLEEP 2

    LOOP UNTIL INKEY$ <> ""



END SUB

解釋

  1. 我們從預設的 QBasic 純文字螢幕切換到一個啟用圖形的螢幕。
  2. 我們呼叫了建立動畫的子程式。
  3. 我們開始了 do-loop until 迴圈。這使得動畫可以一直執行,直到使用者按下某個鍵結束動畫。
  4. 我們設定了座標的增量。這使得方框可以繪製在新的位置,而不是同一個位置。如果希望方框只在一個方向移動,則只需要設定一個變數的增量。
  5. 我們從每個座標繪製到另一個座標的線條。請注意,每次一個座標保持固定,而另一個座標發生變化。(這裡我指的是兩個座標集,第一個是起始座標集,第二個是結束座標集)
  6. 我們執行了一個 sleep 命令。這會暫停執行 2 秒。如果沒有這個命令,do-loop 會比我們想要的更快地執行,動畫會非常短暫。
  7. 透過使用 RND 為變數賦值,你可以建立隨機、不可預測的動畫。


滑鼠控制

[編輯 | 編輯原始碼]

在這一步,我們將使用 QB64 內建的 _mousehide、_mousex、_mousey、_mouseinput 和 _mousebutton 命令來控制滑鼠輸入。

These Functions only work in QB64!
_mousehide
screen 7

mousetrack

sub mousetrack
do while _mouseinput
cls

X = _mousex
Y = _mousey

LINE (X - 10, Y)-(X + 10, Y), 15
LINE (X, Y - 10)-(X, Y + 10), 15

        IF _MOUSEBUTTON(1) THEN
            IF X > A AND X < A + 25 AND Y > B AND Y < B + 25 THEN
                message$ = "yes"
                goto action
            END IF
        END IF

loop until inkey$ <> ""
  1. 這裡第一個函式 "_mousehide" 阻止預設的指標滑鼠格式顯示在螢幕上。
  2. Mouseinput 函式獲取滑鼠資訊。
  3. 接下來的函式 "_mousex" 和 "_mousey" 儲存滑鼠當前的 x 和 y 座標。
  4. 這些程式碼行繪製了一個基本的觸發器。
  5. "_mousebutton" 函式返回所按滑鼠按鈕的值,“1”表示按下左鍵。
  6. 如果滑鼠按鈕事件發生在某個封閉區域內,則會發出一個名為 "message$" 的訊息。這可以在以後使用。
  7. 如果滿足了之前的條件,則該過程跳轉到行標籤 "action",這裡可能會執行任何命令。
  8. 否則,該過程迴圈,直到滿足 "loop until" 條件。它也可以是與上面給出的條件不同的其他條件。

這些圖形和動畫可以用來建立一個完整的遊戲。你可以使用 "Inkey$" 命令來代替 "Mouse" 函式,來建立不同的場景和情況,每個場景和情況都有完整的程式碼來決定下一步發生的事情。

你可以使用 ".txt" 檔案來儲存資訊,而不是製作不包含任何使用者資訊的遊戲。這些資訊可以稍後被檢索,來建立一個具有完整 “職業” 選項的遊戲。

華夏公益教科書