我目前正在尝试学习Commodore 64 BASIC,但我的sleep函数出现了错误。

3

我最近在学习Commodore 64 BASIC,尝试创建一个文本冒险游戏,但是我遇到了一个关于所有使用的睡眠函数的错误。我的代码如下:

20 SLEEP(1000)
30 PRINT CLS
40 INPUT "START SURVEY?" ANSWER$
50 IF ANSWER$ == "YES"
60 PRINT CLS
70 PRINT "YOU BEGIN THE SURVER"
80 SLEEP(1000)
90 ELSE
100 SLEEP(1000)
110 PRINT CLS
120 PRINT "COME BACK ANOTHER TIME"
130 SLEEP(1000)
140 PRINT CLS
150 GOTO 10

错误在于

ARRAY AT LINE 20

有什么想法可以解决这个问题吗?


错误是什么? - pm100
1
20 SLEEP 1只需删除括号并使用秒而不是毫秒-请参见https://www.c64-wiki.com/wiki/SLEEP - Dave S
1个回答

1
如果您的C64没有大于或等于7.0版本的BASIC,则SLEEP不是C64指令。
当代码被执行时,解释器将SLEEP识别为未定义的数组,因为您使用了SLEEP(),因此会返回错误。如果该语句存在,则必须使用:
10 SLEEP 60

如果没有SLEEP语句,您应编写一些子程序来使用GOSUB语句调用以进行延迟。 C64手册 阅读手册附录时,我发现有一个WAIT语句,但要使用这样的语句,您应该找到由C64更新的某个内存位置(应该有,但我记不清是哪一个)。
我在Stackoverflow上也找到了一个与VIC20/C64延迟相关的答案。这可能是一个好的解决方案:如何在6502基本中等待x秒

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接