c# - 箭头键输入与专注于对象
问题描述
我目前正在用 C# 编写我自己的俄罗斯方块,并且使用 W、A、S、D 进行输入。我的问题是我不能使用箭头键,因为重点放在对象上(我的意思是当前对象上的蓝色突出显示)。我有一个可以随时结束游戏的按钮,因此,它不会将我的输入注册为当前俄罗斯方块块的控件,而是像这个按钮一样在启用的对象中导航。
以防万一我在阅读输入时做错了什么:
bool bl = checkCollision();
if (!bl && !blocked)
{
if (e.KeyCode == Keys.W || e.KeyCode == Keys.Up)
{
//turning the block
}
if (e.KeyCode == Keys.S || e.KeyCode == Keys.Down)
{
//speeding up the falling
}
if (e.KeyCode == Keys.A || e.KeyCode == Keys.Left)
{
direction = 'l';
if (currentY > 0)
{
if (!blocked)
{
inpt = true;
currentY -= 1;
falling();
}
}
}
if (e.KeyCode == Keys.D || e.KeyCode == Keys.Right)
{
direction = 'r';
if ((currentY + currentBlock.getSize()) < 10)
{
if (!blocked)
{
inpt = true;
currentY += 1;
falling();
}
}
}
}
如果你想知道为什么我会检查 2 次如果阻塞是假的(如果下降方法当前处于活动状态,那么阻塞是真的,所以它不会例如同时向下和向左移动)。
有什么办法可以让我在有人玩游戏时关闭焦点?(因此,当有人按下“播放”时,我会简单地停用焦点,如果有人按下“停止”或输掉游戏,我会重新激活它。
在此先感谢您的帮助!
编辑:我的程序是 Windows Forms-App (.Net Framework)
解决方案
推荐阅读
- excel - EXCEL:将两个动态数组与多列组合
- x86 - 对 x86 保护模式内存布局感到困惑
- kubernetes - nginx-ingress 反向代理后端子路径
- php - 通过钩子在 WooCommerce 单个产品页面中显示自定义字段值
- python - 从同一个文件创建数据库和表的最佳方法是什么?
- javascript - 如何从本地 html 文件中获取服务器内容?
- c - 在程序集 mips 64 (winmips64) 中创建具有多个参数的 C 函数
- r - 用 ggplotly 分别为 r 中的每个图设置刻面图的刻度
- ubuntu - HAProxy UDP 负载平衡
- html - Css 类立即更改而不是使用转换