【问题标题】:Print out letter in any position on the screen在屏幕任意位置打印字母
【发布时间】:2013-10-03 11:58:57
【问题描述】:

根据 C64 手册,您可以使用“POKE 1024, 1”打印一个字符,其中 1024 是起始地址 (C64-BASIC)。屏幕是 40*25,也就是说 2024 是屏幕结束的位置。这给出了以下公式,用于从头开始(1024,屏幕左上角)在任何行和列中写入字母:1024 + x + 40 * y 其中 x 是行,y 是列。现在,大多数情况下,当您创建这样的游戏时,您希望从左下角开始(应该是地址 1984)。现在,是否有一个“公式”可以让 X 和 Y 从这一点开始工作?

示例:假设您有一个角色或某物从左侧移动并且它需要跳跃,因此我们需要进行一些物理计算并更改 X 和 Y 值并写入屏幕。如果 X 用 3 更新,Y 用 4 更新,则需要计算这些值,以便在屏幕上正确(从屏幕左下角作为起点)。

我希望我已经解释得很好,这不是太模糊。否则,就问吧。

提前感谢您的帮助!

【问题讨论】:

    标签: coordinate-transformation c64


    【解决方案1】:

    现在是英格兰的一大早(早点...),但据我所知,您只需反转 y 坐标?

    这可能需要一些调整,但这不会使公式[编辑]:

    1024 + x + 40 * (24 - y)

    似乎从左下角开始,您只需要弄清楚原始公式中的 y 坐标是什么...

    【讨论】:

    • 那将是24-y - '1024' 不在第一行,而是在第 0 行,行数为 0..24。最后一个有效位置是 2023 年,而不是 2024 年。
    • 我以为可能是这样,我发帖后不久就意识到了这一点,但那时已经在路上了!
    【解决方案2】:

    您可以使用 tab() 更改打印 X 位置:

    print tab(8)"test"
    

    【讨论】:

      猜你喜欢
      • 2020-01-20
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 2011-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多