Project1

标题: 帮我翻译一下这小段脚本呗,现在陷入了困境 [打印本页]

作者: 965426480    时间: 2014-1-26 00:17
标题: 帮我翻译一下这小段脚本呗,现在陷入了困境
#========================================================================
unless $keybd
    $keybd = Win32API.new('user32', 'keybd_event', ['i', 'i', 'l', 'l'], 'v')
    $keybd.call(0xA4, 0, 0, 0)
    $keybd.call(13, 0, 0, 0)
    $keybd.call(13, 0, 2, 0)
    $keybd.call(0xA4, 0, 2, 0)
end
#=====================
没错,就是模拟按键,然后自动全屏,不过我不明白是怎么模拟的,像类似这种脚本还有什么地方啊,最近刚刚恶补一边rgss2,发现仅靠脚本编辑器里内容也不是什么都能做啊,求助……
作者: yagami    时间: 2014-1-26 00:43
$keybd 可以理解为一个函数指针 保存了 win32 API里 一个叫 keybd_event的函数地址 ,该函数在user32.dll里  该函数接受4个 int参数 就是 4个i 的意思  没有返回值(void)就是v 的意思  (因为这函数是C写的 C是强类型 所以必须指定传参和返回值得类型)
call 是调用函数 前2句 意思是 按下 ALT 和 回车  也就是0xA4 (164) 和13对应的键值 其中第三个参数为0代表着按下
同理 后2句的意思就是弹起 ALT 和回车 其中2这个参数就代表弹起
作者: 965426480    时间: 2014-1-26 09:49
yagami 发表于 2014-1-26 00:43
$keybd 可以理解为一个函数指针 保存了 win32 API里 一个叫 keybd_event的函数地址 ,该函数在user32.dll里 ...

哦,谢谢你啊,也就是说我要是想成为一个做游戏的高手,光是学rgss2还是不够的...还得把精通个c语言????
作者: yagami    时间: 2014-1-26 10:06
965426480 发表于 2014-1-26 09:49
哦,谢谢你啊,也就是说我要是想成为一个做游戏的高手,光是学rgss2还是不够的...还得把精通个c语言?? ...

RGSS只是RM提供的一套RPG的逻辑代码而已 从里面可以学到很多面向对象的编程思想 但自己做游戏不能依赖RGSS要扩充 修改API 有很多事情用RUBY很难实现 又或者实现起来效率低 可以考虑用C写DLL 用RUBY调用,好比很多C程序员 碰到有些麻烦的事情 会选择汇编一样
作者: 965426480    时间: 2014-1-26 20:34
yagami 发表于 2014-1-26 10:06
RGSS只是RM提供的一套RPG的逻辑代码而已 从里面可以学到很多面向对象的编程思想 但自己做游戏不能依赖RGS ...

真是感谢,怪不得看到那些高手们做游戏总是附带个DLL.那我再学习学习c语言编写个dll,谢了爷们




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