Project1

标题: 键盘 按键 键码 win32api GetAsyncKeyState GetKeyState Input VA [打印本页]

作者: Vortur    时间: 2018-3-26 18:52
标题: 键盘 按键 键码 win32api GetAsyncKeyState GetKeyState Input VA
本帖最后由 Vortur 于 2018-3-30 02:54 编辑
前言

宏观算法
展开

具体实现
新建模块,调用win32api
建立哈希表
建立刷新结构
判断玩家键盘消息

附录
附全部代码
win32api教程
键码表
“GetAsyncKeyState”与“GetKeyState”的区别
PS.有没说清楚的,随时问
作者: 仲秋启明    时间: 2018-3-26 22:53
如果要做商业游戏那种玩家自定义按键的话貌似修改按键很简单?修改之后如何保存和处理冲突才是问题?
作者: Vortur    时间: 2018-3-27 07:12
本帖最后由 Vortur 于 2018-3-27 04:06 编辑
仲秋启明 发表于 2018-3-26 04:53
如果要做商业游戏那种玩家自定义按键的话貌似修改按键很简单?修改之后如何保存和处理冲突才是问题? ...


  唔...在下没有想辣么深,这是从自己的游戏《他乡何恙》里拆出来的脚本,这里附一个自定义按键的beta,用这个思路的话,实现阁下的功能应该是可以了
  至于兼容性...所有代码都重写了,兼容性自然不需要担心了吧!?如果想做成“脚本插件”这种代码,只需在在模块“FeloneInput”里设置一些常量,并将其重命名为“Input”,再插入到“BattleManager”下,应该就可以了啪!?❤

附:用户自定义键位beta
Scripts.zip (1.74 KB, 下载次数: 86)


P.S.尝试写了下“自定义按键”的脚本插件,发现主要问题有两个:
  1. Input模块中,不能置入预设变量
  2. 符号“:A”、“:B”等,在下无法将其重新赋值






  
作者: shitake    时间: 2018-3-27 18:37
仲秋启明 发表于 2018-3-26 22:53
如果要做商业游戏那种玩家自定义按键的话貌似修改按键很简单?修改之后如何保存和处理冲突才是问题? ...

我印象中 xp 有个带虚拟按键层的键盘输入脚本 思路是你可以创建一个虚拟的键盘映射层 这样开发的时候所引用的按键和最终实际生效的按键并不需要对应 这样只要修改这个vk层就可以做到自定义按键
作者: Vortur    时间: 2018-3-27 20:37
本帖最后由 Vortur 于 2018-3-27 03:37 编辑
dearake 发表于 2018-3-27 00:37
我印象中 xp 有个带虚拟按键层的键盘输入脚本 思路是你可以创建一个虚拟的键盘映射层 这样开发的时候所引 ...


呃呃呃...
“虚拟的键盘映射层”是这样吗?
思路就是:“在监听玩家键盘消息时,以预置变量存储键码”,只需在游戏中设置一个修改变量内容的功能,即可实现“玩家自定义按键”
  尝试了一下把这个脚本写成脚本插件,发现预置变量出现在“Input”模块中将会报错,可能“Input”的加载要早于变量(实际情况是,无论将预置变量的加载置于何处,总是报错“未为名方法”);另外,“符号”的重赋值在下也不会TAT

  要是能找到一个重写Input模块的范例就好了,记得曾经在哪里见过的...唉,类似这个:重写按键符号


  





欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1