我在我的Beeb上使用模式7("图文电视模式")。我想在中间打印一串带有彩色文本控制字符的完整字符,按照这个模型:
但是,我无法完成如何做到这一点。控制字符需要在输出中占用空间:
PRINT CHR$129;"STACK"CHR$132;"OVERFLOW"
我读了held graphics mode,但这似乎只允许我重复上次使用的图形符号,而不是在打印控制字符时插入空格。当我尝试使用文本时,我只为获得的图形字符获得了额外的空间:
PRINT CHR$129;"STACK"CHR$158;CHR$132;"OVERFLOW"
这可能吗?我可以在没有可见空间的情况下打印控制角色吗?
或许有一种方法可以插入一个控制字符后跟一个退格区,以声明回占用空间但保留控制代码效果?
答案 0 :(得分:2)
使用“保留图形”字符时,无法将文本字符视为图形字符。可以在此处找到使用“保持图形”的一个很好的示例:http://www.riscos.com/support/developers/bbcbasic/part2/teletext.html
您也无法使用退格符返回一个空格,因为每个控制代码占用屏幕上的一个空格。
答案 1 :(得分:1)
好的,这有点像软糖;但它是我的问题的答案所以我将在这里分享所有那些BBC Micro / Teletext开发人员在同样的问题上挣扎...
我的挑战是避免两个彩色单词之间有明显的空间。控制字符必须存在于文本中并占据一个字符(作为空格或最后使用的块图形的副本)。
因此,通过在每个字符之间插入一个空格,我可以使文本显示为一个单词(虽然字母间距略有过多):
PRINT CHR$129;"S T A C K"CHR$132;"O V E R F L O W"
这对我有了预期的效果 - 对其他人来说可能没有。我能看到的唯一另一条路线是以块图形渲染整个文本,这比我定居的方法占用的屏幕空间要多得多。
答案 2 :(得分:0)
这是来自记忆,我记得CHR$(8)
将光标向左移动了一个位置。
将它放在"O"
:
PRINT CHR$(129);"STACK";CHR$(132);CHR$(8);"OVERFLOW"
可悲的是,我相信,我的BBC模型B是在我的父母身上。阁楼,所以我无法测试。