收藏 分销(赏)

学习游戏脚本制作:按键精灵键鼠同步器源码分享.docx

上传人:xrp****65 文档编号:7446717 上传时间:2025-01-05 格式:DOCX 页数:7 大小:12.03MB 下载积分:10 金币
下载 相关 举报
学习游戏脚本制作:按键精灵键鼠同步器源码分享.docx_第1页
第1页 / 共7页
学习游戏脚本制作:按键精灵键鼠同步器源码分享.docx_第2页
第2页 / 共7页


点击查看更多>>
资源描述
学习游戏脚本制作:按键精灵键鼠同步器源码分享  来源:按键学院 【按键精灵】 小编之前也有使用过其它大牛编写的游戏同步的脚本,突然间对于它是如何实现同步感到十分好奇,我们一起来研究看看,同步到底是怎么实现的吧~ NO.1-同步的前提 前提 1 同步的两个窗口需要是同一个应用窗口,并且窗口大小要相同 2 同步窗口可以接收到按键的键鼠发送信息 3 同步的窗口支持后台键鼠操作 NO.2-本节例子及其能实现的功能 例子 1 画图工具,实现同步画图 2 记事本,实现同步删除内容 功能     ① 键鼠同步             ② 支持组合键 NO.3-思路大剖析 思路步骤 1 获取主窗口和被同步窗口句柄 ●    WaitKey 命令等待键盘按下 ○ 按下F6则获取当前鼠标指向的窗口句柄,作为主窗口句柄。 ○ 按下F7 则获取当前鼠标指向的窗口句柄,作为同步窗口句柄。 ●   用Do循环来等待按键,当主窗口句柄和同步窗口句柄都获取到时,退出Do循环 ● 代码 Do     Key = WaitKey()     If Key = 117 Then         主窗口 = Plugin.Window.MousePoint()     End If     If Key = 118 Then            同步窗口 = Plugin.Window.MousePoint()     End If     Delay 500     If 主窗口 <> 0 and 同步窗口 <> 0 Then          Exit Do     End If Loop 2 设置两个窗口的窗口大小一致 ●    窗口大小一致,同步的时候鼠标才能移动到正确的位置。 ● 代码    Call Plugin.Window.Size(主窗口,800,600)    Call Plugin.Window.Size(同步窗口,800,600) 3 获取主窗口的左上角坐标 ●   GetWindowRect 命令获取主窗口的左上角坐标 ● 代码         sRect = Plugin.Window.GetWindowRect(主窗口)            dim MyArray            MyArray = Split(sRect, "|")            L = Clng(MyArray(0)): T = Clng(MyArray(1)) 4 获取当前鼠标在主窗口的位置 ●   GetCursorPos命令获取当前鼠标位置 ● 代码                         GetCursorPos mx, my 5 计算主窗口内当前鼠标位置和窗口左上角距离 ●   公式:当前鼠标位置减去窗口左上角坐标值( mx-L, my-T) 6 开始同步 ● 被同步窗口,使用按键后台键鼠命令,将鼠标移动到和主窗口相同的位置 ( 按键后台命令鼠标移动是以窗口客户区左上角坐标为基点) ● 代码                        Call Plugin.Bkgnd.MoveTo(同步窗口, mx-L, my-T) ●在主窗口内按下任意键时,同步窗口也执行同样的操作 ● 代码                        Key = GetLastKey()                        Call Plugin.Bkgnd.KeyPress(同步窗口, Key) NO.4-代码 代码 Do     Key = WaitKey()     If Key = 117 Then         主窗口 = Plugin.Window.MousePoint()         //Call Plugin.Window.Size(主窗口,800,600)     End If     If Key = 118 Then            同步窗口 = Plugin.Window.MousePoint()        // Call Plugin.Window.Size(同步窗口,800,600)     End If     Delay 500     If 主窗口 <> 0 and 同步窗口 <> 0 Then          Exit Do     End If Loop Do     Mouse = GetLastClick()     If Mouse = 32769 Then  //鼠标左键按下时ASCII码为  32769          sRect = Plugin.Window.GetWindowRect(主窗口)              dim MyArray            MyArray = Split(sRect, "|")            L = Clng(MyArray(0)): T = Clng(MyArray(1))           GetCursorPos mx, my         Delay 10         Call Plugin.Bkgnd.LeftDown(同步窗口, mx-L, my-T)            Delay 10         Do             Mouse = GetLastClick()             If Mouse = 0 Then  //鼠标无点击操作                 GetCursorPos mx, my                 Delay 10                 Call Plugin.Bkgnd.MoveTo(同步窗口, mx-L, my-T)                 Delay 10             End If             If Mouse = 32770 Then //鼠标左键弹起时ASCII码为  32770                  GetCursorPos mx, my                 Delay 10                 Call Plugin.Bkgnd.LeftUp(同步窗口, mx-L, my-T)                 Exit Do             End If                Loop     End If     Key = GetLastKey()     Call Plugin.Bkgnd.KeyPress(同步窗口, Key) Loop NO.5-效果演示 演示 画图  记事本  注意  画图和记事本,获取窗口句柄的时候请点击白白的客户区进行获取,因为我们是要对它的客户区进行操作 NO.6-温馨小提示 温馨小提示                 * 游戏窗口中的同步,需要注意几个窗口中人物的朝向和坐标是否相同                 * 如果坐标朝向不同,一个窗口里的角色往西边走一个往北边走,就无法达到预期同步任务的效果
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 应用文书 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服