我正在编写一个游戏,你是一只蜘蛛,你试图躲避火力。我正在对fire进行编码,当它到达右边缘时,它会返回到左边缘,然后无限地上下移动。我使用学校免费软件中的代码作为基础,并对"bouncing ball animation"进行了一些修改。
除了在sub bounce和主do loop中,test1.xdest和test1.ydest不会在其他任何地方被调用。我不知道它为什么要这么做。
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发布于 2020-06-02 05:11:09
我弄清楚了,在第37行,我把一个变量拼错了,我把test1.x放在了text1.x上
发布于 2020-08-25 00:46:13
这个程序的问题是有几个拼写错误的。
你把text1.x.写错了,
如果使用ELSE IF,您可以使代码更有效率
IF test1.x >= 628 THEN
test1.xdest = 0
ELSE IF test1.x <= 0 THEN
test1.xdest = 1
END IF
IF test1.y >= 468 THEN
test1.ydest = 1
ELSE IF test1.y <= 0 THEN
test1.ydest = 0
END IFhttps://stackoverflow.com/questions/62040610
复制相似问题