- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 Commodore 64 中的内核例程来实现游戏控制。
下面的代码可以正常工作,但有一个异常(exception)。每个击键都算作单个输入。例如:如果按住按钮,则没有任何效果。每次移动都必须松开并再次按下。我怎样才能改变这种行为?只是我想只要按住键就重复该操作。
GETIN = $FFE4
SCNKEY = $FF9F
keyScan:
jsr SCNKEY ;get key
jsr GETIN ;put key in A
cmp #65
beq left
cmp #68
beq right
jmp keyScan
最佳答案
SCNKEY
不适合需要多个同时按键输入的游戏。它是无状态的,只是返回现在按下的“那个”键——也就是说,如果按下了两个键,它只会告诉您一个,并且官方不保证是哪个键。您可以做的最好的事情是考虑仍然按下一个键,直到 SCNKEY
报告按下其他按键或没有按下任何按键,但第二个同时按下的按键是否被忽略或替换的可能性是偶数第一个。
如果你的程序不符合只有按下“the”键的正统观念,你就必须自己敲击硬件。代码库64 offers some example code ;我的摘要版本是(已正确设置 CIA,尽管它可能已经进行了适当配置):
通用例程需要单独测试每一行以避免阴影 - 假设您要求通过在位 3 和 4 中存储 0 到 DC00 来同时读取第 4 行和第 5 行,并且您得到的结果是顶部有点清楚,您不知道是否按下了 v 或 n 或两者都按下了,只知道至少其中之一按下了。
请参阅上述同一链接的最底部,了解英语键盘上的行和列的表格;它们是物理按键布局的结果,因此其他语言的差异与键盘的差异一样大。如果您正在编写游戏并且您对按键的布局比其符号更感兴趣,那么您不必担心语言。
关于assembly - 如何更改 Commodore 64 中的内核 MONKEY 例程行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41261528/
我在 commodore 64 模拟器上输入了“hello world”。我必须把它打印成 Hello World Hello World Hello World 我怎样才能只使用一个打印语句来做到这
Closed. This question is off-topic。它当前不接受答案。 想改善这个问题吗? Update the question,因此它是on-topic,用于堆栈溢出。 已关闭8
所以,我想在 Commodore 64 BASIC 中编写更大的函数。到目前为止,从我从其他来源(例如各种 C64 wiki 以及 C64 本身的用户手册)看到的内容来看,函数定义只能是一行。 也就是
我知道这个问题是非常特殊的问题,但我知道这里有一些 c64 代码大师。所以,这是我的问题。 当我尝试使用 $d011 技巧禁用屏幕时,上/下边框也会打开。我想在不打开上/下边界的情况下做到这一点。是否
我正在尝试学习如何使用以下内核例程写入磁盘文件 Codebase64 Tutorial . 我复制了用 Acme Crossassembler 编写的例程,如下所示。它无法打开文件并给出错误消息:“文
我的好奇心已经有 25 年了,我很想了解这个技巧。 在 Commodore 64 中,6569 VIC 无法寻址边界。您所能做的就是在中心区域(光标移动的区域)绘制像素。边框始终是统一的,尽管您可以使
我在 commodore 64 中初始化了一 block “.”板。 我想随机将单词放入板中,单词的每个字母都是“.”在棋盘上(如单词搜索游戏)。如果单词不适合,则可以放置下一个单词。我想垂直和水平放
嗯,这很尴尬。我已经在 Gentoo(Commodore 64 模拟器)上安装了 VICE,但是……无法启动它。我查看了 distfiles,我应该将“x64”作为起始命令(还有一堆其他程序),但没有
我发现的 PET 的零页内存映射声称零页地址范围 $00C2..$00D9 用于静态数据,例如http://www.classiccmp.org/dunfield/pet/petmem.txt 说:
我有一些 6502 代码可以在清除屏幕后将字符串打印到屏幕内存中。不幸的是,如果我打印一个字符串,例如“HELLO WORLD”,它会出现乱码。我发现这是因为大写字符从 0x01 开始,而不是我从 P
我在 Commodore Basic 6502 中打印点板时遇到问题。 这就是我必须做的:(这是一个子程序) 10 INPUT "Please enter a number:", X 20 DIM A
我计划在我的新 C64 项目中使用多色字符模式下的软件 Sprite 。我的想法是使用叠加“子弹” Sprite 数据来平铺数据。 我想我可以在地址“TILESET”处拥有tileset数据,在地址“
我正在尝试在 Commodore BASIC 中用“.”填充 A$(X,X)。 这就是我到目前为止所拥有的......但我不太确定如何处理 ASCII 值等。有评论吗? INPUT A$ FOR I
我正在尝试使用 Commodore 64 中的内核例程来实现游戏控制。 下面的代码可以正常工作,但有一个异常(exception)。每个击键都算作单个输入。例如:如果按住按钮,则没有任何效果。每次移动
我正在尝试在 Commodore BASIC 中用“.”填充 A$(X,X)。 这就是我到目前为止所拥有的......但我不太确定如何处理 ASCII 值等。有评论吗? INPUT A$ FOR I
我正在写一个小爱好 c64 文本冒险,我在一个非常具体的时刻停了下来。也就是说,我不知道如何引用引用中的任何内容。 如何在 commodore 64 basic v.2.0 中做到这一点? 最佳答案
您使用哪些工具在 OSX 上对 C64 进行交叉开发? 哪些汇编器、文本编辑器或 IDE、gfx、sprite、字符集编辑器? 或者您只是更喜欢通过 parallels 桌面或 bootcamp 的
作为我之前的衍生curiosity question我有一个后续的好奇心。 6502、VIC 和 SID 芯片是否有 future 和/或应用?我知道它们仍在生产和使用。例如,我记得 6502 是一个
我想在 Commodore 64 上的 BASIC 程序中存储一些二进制数据为 DATA声明。为了节省空间,我更愿意存储为字符串,而不是数字序列。 是否可以存储任何字符,来自 CHR$(0)通过 CH
屏幕上的第 1 行有水平平滑滚动的文本。平滑滚动效果是使用 $d016 硬件滚动效果通过迭代 $d016 的 7 个最低位来实现的。滚动条在屏幕的第一行运行。我设置了两个光栅中断。 “noScroll
我是一名优秀的程序员,十分优秀!