设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3533|回复: 4
打印 上一主题 下一主题

[讨论] 键盘 按键 键码 win32api GetAsyncKeyState GetKeyState Input VA

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1293
在线时间
995 小时
注册时间
2014-12-14
帖子
3016

开拓者

跳转到指定楼层
1
发表于 2018-3-26 18:52:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 Vortur 于 2018-3-30 02:54 编辑
前言

宏观算法
展开

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

附录
附全部代码
win32api教程
键码表
“GetAsyncKeyState”与“GetKeyState”的区别
PS.有没说清楚的,随时问
【RMVA教程】
---------------------
欲买桂花同载酒,终不似,少年游.

Lv4.逐梦者

醉啸 长风万里

梦石
0
星屑
6167
在线时间
6593 小时
注册时间
2007-12-16
帖子
4501

贵宾

2
发表于 2018-3-26 22:53:52 | 只看该作者
如果要做商业游戏那种玩家自定义按键的话貌似修改按键很简单?修改之后如何保存和处理冲突才是问题?

还在龟速填坑中
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1293
在线时间
995 小时
注册时间
2014-12-14
帖子
3016

开拓者

3
 楼主| 发表于 2018-3-27 07:12:52 | 只看该作者
本帖最后由 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”等,在下无法将其重新赋值






  
【RMVA教程】
---------------------
欲买桂花同载酒,终不似,少年游.
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4598
在线时间
1206 小时
注册时间
2016-4-7
帖子
982

开拓者

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

我印象中 xp 有个带虚拟按键层的键盘输入脚本 思路是你可以创建一个虚拟的键盘映射层 这样开发的时候所引用的按键和最终实际生效的按键并不需要对应 这样只要修改这个vk层就可以做到自定义按键
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1293
在线时间
995 小时
注册时间
2014-12-14
帖子
3016

开拓者

5
 楼主| 发表于 2018-3-27 20:37:40 | 只看该作者
本帖最后由 Vortur 于 2018-3-27 03:37 编辑
dearake 发表于 2018-3-27 00:37
我印象中 xp 有个带虚拟按键层的键盘输入脚本 思路是你可以创建一个虚拟的键盘映射层 这样开发的时候所引 ...


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

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


  
【RMVA教程】
---------------------
欲买桂花同载酒,终不似,少年游.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 17:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表