易语言大漠多线程模板-12游戏实例化

教程源码:

.版本 2
.支持库 EThread

.程序集 脚本

.子程序 脚本主线程, , , 游戏的动作逻辑都在这里
.参数 序号, 整数型
.局部变量 dm, dmsoft
.局部变量 dm_ret, 整数型
.局部变量 死循环, 逻辑型
.局部变量 任务完成, 文本型

' 要把大漠插件接口初始化为MAT线程模型
CoInitializeEx (0, 0)
线程信息 [序号].线程状态 = #线程状态_正在运行

多线程_异步通知UI (#通知类型_更新, 序号)
' 创建对象
线程信息 [序号].dm.创建 ()
dm = 线程信息 [序号].dm

.如果真 (dm.Ver () = “”)
日志输出 (“大漠对象创建失败”)
多线程_异步通知UI (#通知类型_停止, 序号)
返回 ()
.如果真结束

' 开启全局字库
' dm.EnableShareDict ()
' 设置全局路径
dm.SetPath (“c:\test”)
' 开始绑定游戏窗口,根据自己的游戏换绑定方式
dm_ret = dm.BindWindow (线程信息 [序号].窗口句柄, “dx”, “dx2”, “windows”, 0)
.如果真 (dm_ret ≠ 1)
日志输出 (“主:绑定失败,错误码:” + 到文本 (dm.GetLastError ()))
' 通知主线程进行结束操作(释放资源)
多线程_异步通知UI (#通知类型_停止, 序号)
返回 ()
.如果真结束

' 禁止窗口输入
' dm.LockInput (4)
' 下面开始创建副线程
' 先跟新一下线程信息
线程信息 [序号 + MaxHwnd].线程状态 = #线程状态_正在启动
' 创建副线程
.如果真 (启动线程 (&脚本副线程, 序号 + MaxHwnd, 线程信息 [序号 + MaxHwnd].线程句柄) = 假)
' 必须先解绑
dm.UnBindWindow ()
日志输出 (“副线程创建失败!”)
多线程_异步通知UI (#通知类型_停止, 序号)
返回 ()

.如果真结束

' 开始游戏环节动作

死循环 = 真
.判断循环首 (死循环)
设置任务状态 (序号, “开始工作”)
对话 (序号)
跑路 (序号)
打怪 (序号)

脚本延时 (序号, 1000)
设置任务状态 (序号, “任务完成”)
.判断循环尾 ()

.子程序 对话
.参数 序号
.局部变量 dm, dmsoft

设置任务状态 (序号, “开始对话”)
dm = 线程信息 [序号].dm
.计次循环首 (10, )
dm.KeyPress (114)
脚本延时 (序号, 1000)
.计次循环尾 ()

.子程序 跑路
.参数 序号
.局部变量 dm, dmsoft

设置任务状态 (序号, “开始跑路”)
dm = 线程信息 [序号].dm
.计次循环首 (10, )
dm.KeyPress (115)
脚本延时 (序号, 1000)
.计次循环尾 ()

.子程序 打怪
.参数 序号
.局部变量 dm, dmsoft

设置任务状态 (序号, “开始打怪”)
dm = 线程信息 [序号].dm
.计次循环首 (10, )
dm.KeyPress (116)
脚本延时 (序号, 1000)
.计次循环尾 ()

.子程序 设置任务状态
.参数 序号, 整数型
.参数 任务状态, 文本型

线程信息 [序号].任务状态 = 任务状态
多线程_异步通知UI (#通知类型_更新, 序号)

优酷视频播放链接


发布日期:

所属分类: 易语言 标签: