1.首先介绍一下键盘有关的函数:
char *getKeyText(int key);
功能:返回按键种类
int getLastKey();
功能:返回最后按下的按键
Demo中的使用方法
在dis2角色中添加“绘制角色”事件,在脚本中添加如下代码:
int keyCode = getLastKey(); //获得最后按下的按键
sprintf(text,"最后按下的按钮是:%s", getKeyText(keyCode));//显示按钮类型
void remapKey(int fromKey, int toKey);
功能:重定向fromKey到toKey(用户配置按键).用此函数可重定向任意按键
当使用LoadGame()后所有的重定向都会被删除
char *GetKeyState();
功能:返回键盘状态的数组
使用方法(可在角色“绘制角色”事件中使用,具体使用可参照Demo):
char *key = GetKeyState(); //获取键盘状态
if(key[KEY_RIGHT] == 1) //测试是否按了“右方向键”
{
x = x + 5; //把角色右移5个像素
}
2.在MC中有关键盘按键的事件有:“按键按下”、“按键弹起”两个事件,
“按键按下”即按键按下时触发,“按键弹起”即按键松开时触发。
void remapKey(int fromKey, int toKey)函数能映射这两个事件中的按键到不同按键,如:
Demo中可以将键盘g按键重定向到a按键。比如执行 remapKey(KEY_g, KEY_a);后,按g按键和按a按键是执行一样的操作的。
Demo功能:
(1)使用MC的键盘按键中的事件来移动角色(w上移5个像素,s下移5个像素,a左移5个像素,d右移5个像素),
及两个按键的组合(a、w左上,a、s左下,s、d右下,w、d右上)。
(2)重定向a、s、d、w按键到任意按键(a-z按键)
(3)使用代码(GetKeyState()函数)来判断按键的触发
附近: