帮助:ZX81'BASIC'Peek功能

时间:2010-07-07 16:31:09

标签: peek zx81

我需要一种方法来查找角色('<')是否撞墙(黑色像素图形)

- 在ZX81游戏中。

我一直在看另一个游戏......它使用代码

如果偷看(偷看16398 + 256 * peek 16399)=代码“ blackpixel graphic ”那么......

这似乎对他们有用......

这是正确的代码吗?

我真的不知道地址和获取记忆和东西。

请帮帮我......

- 如果你知道更好的方法。请回答 :) - 有人提到'光标位置'在ZX81上到底是什么? 谢谢,

2 个答案:

答案 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)

哇,这回事了。我没有使用ZX81,但我确实在当天以TRS-80的方式写了一些游戏。

内在部分:

  

(偷看16398 + 256 * peek 16399)

几乎取两个内存位置(8位)的值并创建一个16位

他们的数字,然后用作外窥视的地址;你可以改写为:

  

addrToCheck =(peek 16398 + 256 * peek 16399)

     

pixelValue = peek(addrToCheck)

     

如果pixelValue =代码“blackpixel graphic”则...

我猜测'addrToCheck'值实际上是游戏中的角色位置,表示为屏幕上的地址。因此,如果该值不是墙,那么您将使用新的字符位置更新地址16398和16399中的值(毫无疑问使用“戳”)。

希望这有帮助