我需要一种方法来查找角色('<')是否撞墙(黑色像素图形)
- 在ZX81游戏中。
我一直在看另一个游戏......它使用代码
如果偷看(偷看16398 + 256 * peek 16399)=代码“ blackpixel graphic ”那么......
这似乎对他们有用......
这是正确的代码吗?
我真的不知道地址和获取记忆和东西。
请帮帮我......
- 如果你知道更好的方法。请回答 :) - 有人提到'光标位置'在ZX81上到底是什么? 谢谢,
答案 0 :(得分:5)
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,█。)
哦,小男孩,我觉得自己老了。
答案 1 :(得分:1)
内在部分:
(偷看16398 + 256 * peek 16399)
几乎取两个内存位置(8位)的值并创建一个16位
他们的数字,然后用作外窥视的地址;你可以改写为:
addrToCheck =(peek 16398 + 256 * peek 16399)
pixelValue = peek(addrToCheck)
如果pixelValue =代码“blackpixel graphic”则...
我猜测'addrToCheck'值实际上是游戏中的角色位置,表示为屏幕上的地址。因此,如果该值不是墙,那么您将使用新的字符位置更新地址16398和16399中的值(毫无疑问使用“戳”)。
希望这有帮助