1

我在我的 Beeb 上使用模式 7(“图文电视模式”)。根据这个模型,我想打印一串完整的字符,中间有一个彩色文本控制字符:

彩色图文电视字符的示例字符串

但是,我无法做到这一点。控制字符需要在输出中占用空间:

PRINT CHR$129;"STACK"CHR$132;"OVERFLOW"

输出不需要的空间

我阅读了保持图形模式,但这似乎只允许我重复上次使用的图形符号,而不是在打印控制字符时插入空格。当我用文本尝试这个时,我只是为持有的图形字符获得了额外的空间:

PRINT CHR$129;"STACK"CHR$158;CHR$132;"OVERFLOW"

在此处输入图像描述

这可能吗?我可以在没有可见空间的情况下打印控制字符吗?

或者也许有一种方法可以插入一个控制字符后跟一个退格,以收回占用的空间但保留控制代码的效果?

4

3 回答 3

2

使用“保持图形”字符时,不能将文本字符视为图形字符。可以在此处找到使用“保留图形”的一个很好的示例:http ://www.riscos.com/support/developers/bbcbasic/part2/teletext.html

您也不能使用退格字符返回一个空格,因为每个控制代码在屏幕上占用一个空间。

于 2017-03-03T06:50:57.683 回答
1

好的,所以这有点软糖;但这是我的问题的答案,所以我将在这里分享给所有那些在同样问题上苦苦挣扎的 BBC Micro / Teletext 开发人员......

我的挑战是避免两个彩色单词之间出现明显的空格。控制字符必须存在于文本中并占据一个字符(作为空格或上次使用的块图的副本)。

因此,通过在每个字符之间插入一个空格,我能够使文本显示为一个单词(尽管字母间距稍微过大):

PRINT CHR$129;"S T A C K"CHR$132;"O V E R F L O W"

带间距的解决方法

这对我产生了预期的效果——对其他人可能没有。我能看到的唯一可用的其他方法是在块图形中渲染整个文本,这将比我确定的方法占用更多的屏幕空间。

于 2016-08-01T14:44:02.440 回答
0

这是凭记忆的,我记得CHR$(8)将光标向左移动了一位。

把它放在前面"O"

PRINT CHR$(129);"STACK";CHR$(132);CHR$(8);"OVERFLOW"

遗憾的是,我相信我的 BBC Model B 在我父母的阁楼里,所以我无法对此进行测试。

于 2016-07-29T15:29:25.223 回答