All pastes #9342 Raw Edit

MoveIMG.BAS QBASIC

public text v1 · immutable
#9342 ·published 2005-04-11 16:24 UTC
rendered paste body
DECLARE SUB initScreen ()
DECLARE SUB move (way AS INTEGER, object AS ANY)
CONST UP = 1
CONST DOWN = 2
CONST LEFT = 3
CONST RIGHT = 4
TYPE objectType
        x AS INTEGER
        y AS INTEGER
END TYPE
DIM object AS objectType
initScreen
object.x = 41
objext.y = 24
DO
        SELECT CASE INKEY$
                CASE CHR$(0) + CHR$(72): move UP, object
                CASE CHR$(0) + CHR$(80): move DOWN, object
                CASE CHR$(0) + CHR$(75): move LEFT, object
                CASE CHR$(0) + CHR$(77): move RIGHT, object
                CASE CHR$(32): EXIT DO
        END SELECT
LOOP
LOCATE 1, 1: PRINT "Thank you for playing."
END

SUB initScreen
        SCREEN 12
        COLOR 9
        WIDTH 80, 50
        LOCATE 24, 41
        PRINT CHR$(1)
END SUB

SUB move (way AS INTEGER, object AS objectType)
        LOCATE object.y, object.x
        PRINT CHR$(0) 'erase previous instance of the image
        SELECT CASE way
                CASE UP: IF object.y > 1 THEN object.y = object.y - 1
                CASE DOWN: IF object.y < 49 THEN object.y = object.y + 1
                CASE LEFT: IF object.x > 1 THEN object.x = object.x - 1
                CASE RIGHT: IF object.x < 79 THEN object.x = object.x + 1
        END SELECT
        LOCATE object.y, object.x
        PRINT CHR$(1) 'draw current instance of the image
END SUB