文章目录[隐藏]
不是说多线程必须用多线程模块,本课就示范了采用单线程类模块来实现多线程的多窗口的绑定和打怪方法。
单线程类模块多线程调用实战 核心源码
.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.程序集变量 遇见, 类_单线程, , "0", 数组的维数上限初始化为0,为大漠多线程调用准备
.程序集变量 游戏窗口数量, 整数型
.程序集变量 hwnd, 整数型, , "0", 游戏窗口句柄
.程序集变量 线程ID, 整数型, , "0", 线程ID
.程序集变量 许可证, 线程许可证
.子程序 _按钮1_被单击, , , 启动多线程
' 为了防止重复绑定
按钮1.禁止 = 真
多线程绑定 ()
.子程序 多线程绑定, , , 多线程绑定游戏窗口,绑定成功后开始多线程
.局部变量 进程ID数组, 整数型, , "0", 进程ID数组
.局部变量 i, 整数型
进程_取ID数组 (“gamefree.exe”, 进程ID数组, )
游戏窗口数量 = 取数组成员数 (进程ID数组)
重定义数组 (遇见, 假, 游戏窗口数量)
重定义数组 (hwnd, 假, 游戏窗口数量)
重定义数组 (线程ID, 假, 游戏窗口数量)
.计次循环首 (游戏窗口数量, i)
' 开始初始化大漠插件,目的就是释放大漠插件和创建大漠对象
遇见 [i].插件初始化 ()
' 获取游戏窗口句柄
hwnd [i] = 进程_ID取窗口句柄 (进程ID数组 [i], , , )
' 开始绑定游戏窗口
.如果 (遇见 [i].BindWindow (hwnd [i], “dx”, “dx2”, “windows”, 0) = 1)
' 开始多线程
hwnd [i] = 线程_启动 (&多线程, i, 线程ID [i])
.否则
信息框 (“窗口” + 到文本 (i) + “绑定失败”, 0, , )
.如果结束
.计次循环尾 ()
.子程序 多线程
.参数 多线程索引, 整数型, , 调用大漠插件的时候需要这个参数,来区分大漠的线程
.局部变量 线程参数
许可证 = 线程_创建许可证 ()
线程_进入许可证 (许可证)
线程_初始化com ()
打怪 (多线程索引)
' 跑路 (线程参数)
遇见 [线程参数].UnBindWindow ()
遇见 [线程参数].销毁 ()
线程_取消com ()
线程_退出许可证 (许可证)
线程_删除许可证 (许可证)
.子程序 打怪
.参数 多线程索引, 整数型, , 调用大漠插件的时候需要这个参数,来区分大漠的线程
.局部变量 n, 整数型
.计次循环首 (100, n)
' 这个参数必须是 多线程索引
遇见 [多线程索引].KeyPress (115)
延迟 (1000)
.计次循环尾 ()
.子程序 跑路
.参数 多线程索引, 整数型
' 写游戏角色的游戏任务
.子程序 _按钮2_被单击, , , 销毁多线程
.局部变量 i, 整数型
.计次循环首 (游戏窗口数量, i)
线程_销毁 (hwnd [i])
.计次循环尾 ()
按钮1.禁止 = 假
.子程序 _按钮3_被单击, , , 多线程-1-挂起
线程_挂起 (hwnd [1])
.子程序 _按钮4_被单击, , , 多线程-1-恢复
线程_恢复 (hwnd [1])
优酷土豆链接:易语言大漠多线程模块制作及游戏实战方法3-单线程类模块多线程调用实战
优酷全部教程播单:http://i.youku.com/i/UNTU3NDYyODg0/playlists
交流群:521068947
本人QQ: 272586593