Я кодирую игру, в которой вы паук и пытаетесь избежать огня. Я кодирую огонь, и когда он попадает в правый край, он возвращается к левому краю и движется вверх и вниз до бесконечности. Я использую код из школьного бесплатного программного обеспечения в качестве основы с некоторой модификацией «анимация прыгающего мяча» .
test1.xdest
и test1.ydest
не вызываются нигде, кроме sub bounce
и в основном do loop
. Не знаю, зачем он это делает.
SCREEN _NEWIMAGE(640, 480, 32)
RANDOMIZE TIMER
TYPE test 'player info
x AS INTEGER
y AS INTEGER
END TYPE
TYPE test1 'fire info
x AS INTEGER
y AS INTEGER
xdest AS INTEGER
ydest AS INTEGER
number AS INTEGER
fire AS LONG
END TYPE
DIM SHARED spider AS test
DIM SHARED test1 AS test1
test1.x = 0 'fire x chord
test1.y = 0 'fire y chord
test1.xdest = 1 '1 if fire is moving right 0 left
test1.ydest = 0 '1 up 0 down
test1.fire = _LOADIMAGE("./fire.png")
DO
PCOPY 1, _DISPLAY
CLS
IF _KEYDOWN(18432) THEN spider.y = spider.y - 5
IF _KEYDOWN(20480) THEN spider.y = spider.y + 5
IF _KEYDOWN(19200) THEN spider.x = spider.x - 5
IF _KEYDOWN(19712) THEN spider.x = spider.x + 5
CIRCLE (spider.x, spider.y), 5, _RGB(177, 83, 127)
_PUTIMAGE (test1.x, test1.y), test1.fire
IF test1.xdest = 1 THEN test1.x = test1.x + 5
IF test1.xdest = 0 THEN test1.x = text1.x - 5
IF test1.ydest = 1 THEN test1.y = test1.y - 5
IF test1.ydest = 0 THEN test1.y = test1.y + 5
bounce
border
WAIT &H3DA, &H3DA
WAIT &H3DA, &H3DA, 8
_DISPLAY
PCOPY _DISPLAY, 1
LOOP
SUB bounce 'makes the fire bounce
IF test1.x >= 628 THEN
test1.xdest = 0
END IF
IF test1.x <= 0 THEN
text1.xdest = 1
END IF
IF test1.y >= 468 THEN
test1.ydest = 1
END IF
IF test1.y <= 0 THEN
test1.ydest = 0
END IF
END SUB
SUB border 'prevents palyer from going OOB
IF spider.x > 630 THEN spider.x = spider.x - 5
IF spider.x < 0 THEN spider.x = spider.x + 5
IF spider.y > 470 THEN spider.y = spider.y - 5
IF spider.y < 0 THEN spider.y = spider.y + 5
END SUB