帮助:ZX81 BASIC的“Peek”函数

7

我需要一种方法来判断字符('<')是否撞到了墙(黑色像素图形)。

-在ZX81游戏中。

我一直在看另一个游戏……它使用的代码是:

if peek(peek 16398 +256*peek 16399) = code "**blackpixel graphic**" then ...

这对他们来说似乎有效...

这段代码正确吗?

我对地址和获取内存等方面并不很了解。

请帮帮我...

-如果您知道更好的方法,请回答 :)

谢谢,


6
我不会提供任何帮助,我大约20年前就把那些信息从我的记忆中清除了。 :-) - Donal Fellows
xD :P 是的,我想了解关于史前计算机的基础知识 :) - 打下基础... - ZX81
2
我想了解古代计算机的基础知识。那就试试ZX-Spectrum吧,更有趣,而且学习一些Z80汇编语言也是一个很好的理由。你可以尝试在Spectrum上制作另一个钻孔者(http://en.wikipedia.org/wiki/Driller_(video_game))、Hard Driving(http://en.wikipedia.org/wiki/Hard_driving)或另一个精英(http://en.wikipedia.org/wiki/Elite_(video_game))。只有文本显示,你最多只能制作类似Rogue-like(http://en.wikipedia.org/wiki/Roguelike)的游戏。 - SigTerm
我已经有了一台ZX81现在 xD *我会看看我能做到什么 :) - ZX81
也许这可以帮助到你(如果在2021年仍然感兴趣):掌握ZX81上的机器码 - Gerold Broser
3个回答

2

peek 读取内存位置处的字节。根据Sinclair ZX81的系统变量,内存位置1639816399形成一个16位值,包含当前的"显示文件中打印位置的地址"

因此,peek 16398 + 256 * peek 16399将这两个值组合成一个16位地址,对该地址进行peek操作(可能)得到该位置的像素/字符(?)。


是的,我一直在看那个。但对于初学者来说没有什么帮助。=/ - ZX81

2

地址16398和16399处是两个字节,它们组成了光标位置。(参见http://web.ukonline.co.uk/sinclair.zx81/chap28.html)。换句话说,

peek 16398 + 256*peek 16399

这个命令会给你当前屏幕上下一个 PRINT 命令的字符内存地址。可以使用 PRINT AT 命令更改此地址。

peek(peek 16398 + 256*peek 16399)

查找特定位置字符的代码。其余部分您应该能够理解。

现在,主要问题是:您的游戏是否以相同方式使用光标?如果不是,则必须使用不同的解决方案。


嗯,好的,如果我在10,10(或任何位置)打印一个黑色像素图形,“peek(peek 16398 + 256 * peek 16399)”会找到黑色像素图形的代码吗? - ZX81
不会,它会查找当前光标位置所在的任何图形的代码。 - Artelius
光标位置?咦?:P 我从来不知道ZX81有鼠标或光标? - ZX81

0

这取决于内存地址是什么,但 peek 通常意味着“这个内存位置中的值是什么?”

这篇文章看起来应该是关于这个特定主题的一些好读物。


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