我需要一种方法来查找字符('<')是否撞到了墙上(黑色像素图形)
- 在 ZX81 游戏中。
我一直在看另一个游戏......它使用代码
如果 peek(peek 16398 +256*peek 16399) = 代码“黑色像素图形”然后...
这似乎对他们有用......
这是正确的代码吗?
我对地址和获取内存之类的东西并不是很了解。
请帮我...
-如果你知道更好的方法。请回答:) - 有人提到“光标位置”ZX81 到底是什么?谢谢,
PEEK(PEEK 16398+256*PEEK 16399)
是一个成语,意思是“获取当前 PRINT 位置的字符编号”。这是因为 ZX81 BASIC/ROM 使用 16398 处的两字节字来存储指向与 PRINT 位置对应的屏幕数据块中的内存位置的指针。
因此,要进行碰撞检测,您首先必须设置:
PRINT AT X,Y;
坐标到>
即将移动的位置,然后读取
LET C= PEEK(PEEK 16398+256*PEEK 16399)
那么您可以在进行检查之前打印>
屏幕上的内容(覆盖其代码现在位于的前一个字符):C
IF C=128 THEN ...
(我猜你想要的字符是全黑字符 128,█。)
哦,男孩,我是否觉得自己老了。
哇这要回去了。我没有使用过 ZX81,但我确实在 TRS-80 上写过一些游戏。
内部部分:
(窥视 16398 +256*窥视 16399)
几乎是取两个内存位置(8 位)的值并创建一个 16 位
它们的编号,然后用作外部 peek 的地址;您可以将其重写为:
addrToCheck = (peek 16398 +256*peek 16399)
pixelValue = peek(addrToCheck)
如果 pixelValue = code "blackpixel graphics" 那么...
我猜测'addrToCheck'值实际上是游戏中的角色位置,以屏幕上的地址表示。因此,如果该值不是墙,那么您将使用新的字符位置更新地址 16398 和 16399 中的值(毫无疑问,使用“poke”)。
希望这可以帮助