题
这个问题在这里已经有一个答案:
- 帮助:ZX81基本“窥视”功能 3个答案
我需要一种方法来查找字符('<')是否撞到墙(黑色像素图)
- ZX81游戏。
我一直在看另一个游戏...使用代码
如果Peek(Peek 16398 +256*Peek 16399)=代码”黑像素图“ 然后 ...
似乎对他们有用...
这是正确的代码吗?
我并不真正了解地址,并获得记忆和东西。
请帮我...
- 如果您知道更好的方法。请回答:) - 有人提到“光标位置” ZX81上到底是什么?谢谢,
解决方案
PEEK(PEEK 16398+256*PEEK 16399)
是一个习语,意思是“在当前打印位置上获取字符编号”。之所以起作用,是因为ZX81 BASIC/ROM使用的两个字节单词在16398使用,将指向存储位置的指针存储在与打印位置相对应的屏幕数据块中。
因此,要进行碰撞检测,您首先必须设置:
PRINT AT X,Y;
坐标到 >
即将移动, 然后 读
LET C= PEEK(PEEK 16398+256*PEEK 16399)
然后你可以打印 >
屏幕上(覆盖先前的字符,其代码现在在 C
)如果您愿意在进行检查之前:
IF C=128 THEN ...
(我猜你想要的角色是全黑角色128,█)。
哦,男孩,我觉得很老。
其他提示
哇,这是否回去。我还没有使用ZX81,但是我确实在一天的TRS-80时写了一些游戏。
内部:
(Peek 16398 +256*PEEK 16399)
几乎是将两个内存位置的值(8位)的值占据并创建16位
从他们那里来的数字,然后用作外观的地址;您可以将其重写为:
addrtoCheck =(Peek 16398 +256*PEEK 16399)
pixelvalue = peek(addrtocheck)
如果PixelValue =代码“ Blackpixel Graphic”,则...
我猜想“ addrtocheck”值实际上是游戏中的字符位置,以屏幕上的地址表示。因此,如果该值不是墙,那么您将以新的字符位置(毫无疑问,使用“ oke”)更新地址16398和16399中的值。
希望这可以帮助