可以实现短按和长按的按键扫描小程序

#define KEY1 1

#define Cnt_Key1S xxxx // 设置短按的时间,目的是去抖动

#define Cnt_Key1L xxxx // 设置长按的时间

#define Cnt_Val_Key  xxxx // 设置长按时,按键赋值的间隔


sbit Key1 = P0^0; // 设置Key1的端口

extern unsigned char Val_Key  = 0; // 初始化按键值,这个变量是extern类型的,可被工程中的其他文件引用

void Key_Scan(void)

{

static unsigned long key1_cnt = 0; // 初始化按键Key1的计数器

// Scan Key1
if(Key1 != 0) // If Key1 is not pushed
{
if((key1_cnt >= Cnt_Key1S) && (key1_cnt < Cnt_Key1L)) // If short time push
{
Val_Key = KEY1;
}
else;
key1_cnt = 0; // Clear the counter
}
else // If Key1 is pushed
{
key1_cnt++;
if((key1_cnt >= Cnt_Key1L) && (key1_cnt % Cnt_Val_Key == 0)) // If long time push
{
Val_Key = KEY1;
}

}

}

此资源是演示程序,大家可以免积分下载。 ------------------------------------------------------ 编写设定游戏按键小程序 随着项目规模的扩大,要考虑的事情增多了。以前不用考虑的按键响应现在也觉得需要进行一番变革了。主要是看到市面上一些大中型的PC游戏都有配置程序,其中有一项功能就是设定游戏的按键。我这里挑选了一些日本C80和C81的有名游戏(《Grief Syndrome》(忧伤综合症,魔法少女小圆),《Fairy Bloom Freesia》(花精灵芙莉季娅),《妖妖剑戟梦想》)的游戏配置程序的截图。 这些小程序可以设置游戏的运行方式,以便让各种类型的显示屏、显卡、操作系统、游戏输入设备能够准确无误地工作,游戏按键的设定也是其一。配置程序将游戏的配置保存为一个文件,游戏中可以载入这些文件。其余的配置我们暂且不讨论,这里讨论的是按键的设置。 有时候我玩别人的游戏,一开始还是有些不适应的,因为游戏开发者的按键习惯不可能与用户的按键习惯完全一致,但是为了不破坏封装性,以及增添简便性,游戏开发者为用户指定了按键设定小程序,这样用户就能够很简单地设定自己喜欢的按键了。我接下来要做的就是游戏开发者做的事情。 为了减少开发的复杂度,我使用开发框架WTL来制作这个小程序。读者如果精通MFC,也可以使用MFC来制作。记得“Lion Heart”组织制作的《Sanae Challenge》(早苗的挑战)中的游戏配置就是用MFC制作的。随后要注意是否使用手柄等一些外设。如果是的话,制作这个程序就一定要用DirectInput,否则无法对游戏设备进行编程。最后 对保存的文件没有什么要求,我一般每一个键保存一个字节。 首先在主对话框CMainDlg类中添加一系列键值,以后用来保存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值