资源描述:
《学习游戏脚本制作:按键精灵键鼠同步器源码分享》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学习游戏脚本制作:按键精灵键鼠同步器源码分享 来源:按键学院【按键精灵】小编之前也有使用过其它大牛编写的游戏同步的脚本,突然间对于它是如何实现同步感到十分好奇,我们一起来研究看看,同步到底是怎么实现的吧~NO.1-同步的前提前提1 同步的两个窗口需要是同一个应用窗口,并且窗口大小要相同2 同步窗口可以接收到按键的键鼠发送信息3 同步的窗口支持后台键鼠操作NO.2-本节例子及其能实现的功能例子1 画图工具,实现同步画图2 记事本,实现同步删除内容功能 ① 键鼠同步 ② 支持组合键NO.3-思路
2、大剖析思路步骤1 获取主窗口和被同步窗口句柄● WaitKey命令等待键盘按下○ 按下F6则获取当前鼠标指向的窗口句柄,作为主窗口句柄。○ 按下F7则获取当前鼠标指向的窗口句柄,作为同步窗口句柄。● 用Do循环来等待按键,当主窗口句柄和同步窗口句柄都获取到时,退出Do循环● 代码Do Key=WaitKey() IfKey=117Then 主窗口=Plugin.Window.MousePoint() EndIf IfKey=118Then 同步窗口=Plugin.Win
3、dow.MousePoint() EndIf Delay500 If主窗口<>0and同步窗口<>0Then ExitDo EndIfLoop2 设置两个窗口的窗口大小一致● 窗口大小一致,同步的时候鼠标才能移动到正确的位置。● 代码 CallPlugin.Window.Size(主窗口,800,600) CallPlugin.Window.Size(同步窗口,800,600)3 获取主窗口的左上角坐标● GetWindowRect命令获取主窗口的左上角坐标● 代码
4、sRect=Plugin.Window.GetWindowRect(主窗口) dimMyArray MyArray=Split(sRect,"
5、") L=Clng(MyArray(0)):T=Clng(MyArray(1))4 获取当前鼠标在主窗口的位置● GetCursorPos命令获取当前鼠标位置● 代码 GetCursorPosmx,my5 计算主窗口内当前鼠标位置和窗口左上角距离● 公式:当前鼠标位置减去窗口左上角坐标值(
6、 mx-L,my-T)6 开始同步● 被同步窗口,使用按键后台键鼠命令,将鼠标移动到和主窗口相同的位置( 按键后台命令鼠标移动是以窗口客户区左上角坐标为基点)● 代码 CallPlugin.Bkgnd.MoveTo(同步窗口,mx-L,my-T)●在主窗口内按下任意键时,同步窗口也执行同样的操作● 代码 Key=GetLastKey() CallPlugin.Bkgnd.KeyPress(同步窗口,Key)NO.4-代码代
7、码Do Key=WaitKey() IfKey=117Then 主窗口=Plugin.Window.MousePoint() //CallPlugin.Window.Size(主窗口,800,600) EndIf IfKey=118Then 同步窗口=Plugin.Window.MousePoint() //CallPlugin.Window.Size(同步窗口,800,600) EndIf Delay500 If主窗口<>0and同步窗口<>0Then
8、 ExitDo EndIfLoopDo Mouse=GetLastClick() IfMouse=32769Then //鼠标左键按下时ASCII码为 32769 sRect=Plugin.Window.GetWindowRect(主窗口) dimMyArray MyArray=Split(sRect,"
9、") L=Clng(MyArray(0)):T=Clng(MyArray(1)) GetCursorPosmx,my
10、 Delay10 CallPlugin.Bkgnd.LeftDown(同步窗口,mx-L,my-T) Delay10 Do Mouse=GetLastClick() IfMouse=0Then //鼠标无点击操作 GetCursorPosmx,my Delay10