按键精灵安卓版游戏脚本教学:开发套路

本文bilibili视频讲解链接:https://www.bilibili.com/video/BV1vZ4y137VN/

如何做到脚本通用

我见过很多上来就用默认分辨率开发的,或者分辨率正确,但是DPi不正确,最后导致反工。会有很多人问,为什么模拟器上面开发的,手机用不了。因为不同的设备,细节都是不一样的,粗看一模一样,实际上细节略有不同,特别是系统字体不一样,导致找字不生效的很常见。想要做到一次开发,处处通用,我们最好是选择分辨率720*1280,DPI 320的模板去开发。如果依旧不兼容,模拟器上正常,物理手机或者云手机不正常,那么就得在对应的设备上进行截图取色,这也是无奈之举,单纯靠降低相似度可能会带来各自问题,有条件的尽量选择100%色域的屏幕进行开发,提高准确度。

代码结构的布局

总体来说是要参照MVC模式来开发,即mode(模块),view(视图),control(控制)。我们写代码的时候,业务逻辑模块、视图模块和控制模块要分开写,下图是我的一个开发习惯,仅供参考,如有不正之处,请指出。

//收费代码
//-------------------------------------------------------------
Dim rsa公钥 = "-----BEGIN PUBLIC KEY-----\n"&_
"-----END PUBLIC KEY-----\n"
Dim rsa私钥 = "-----BEGIN RSA PRIVATE KEY-----\n"&_
"-----END RSA PRIVATE KEY-----\n"
INITELFKEYS rsa公钥, rsa私钥
//开启日志
//-------------------------------------------------------------
Log.Open
//导入插件
//-------------------------------------------------------------
Import "shanhai.lua"
//定义全局/共享变量
//-------------------------------------------------------------
Thread.SetShareVar "游戏监测", False
Thread.SetShareVar "清理背包", False
Thread.SetShareVar "拾取物品", False
Dim 寻路次数=0
//启动线程,一般是两条线程
//-------------------------------------------------------------
Thread.Start (主程序)
Thread.Start (定时器)
//死循环,程序走向控制
//-------------------------------------------------------------
While true
	If Thread.GetShareVar("游戏监测") = true Then 
		If Thread.GetShareVar("清理背包") = true Then 
			Call 清理背包()
			Thread.SetShareVar "游戏监测", False
			Thread.SetShareVar "清理背包", False
		ElseIf Thread.GetShareVar("拾取物品") = true Then
			Call 拾取物品()
			Thread.SetShareVar "游戏监测", False
			Thread.SetShareVar "拾取物品", False
		End If
	End If
	Delay 50
Wend
//线程一,启动主程序
//-------------------------------------------------------------
Sub 主程序()
	While True
        Call 防卡检测()
        Delay 30
        Call 怪物检测()
        Delay 30
        Call 拾取检测()
        Delay 30
	Wend
End Sub
//线程二,启动计时器
//-------------------------------------------------------------
Function 定时功能()
    Dim cqjg=int(ReadUIConfig("输入框_重启间隔"))
    Dim qljg=int(ReadUIConfig("输入框_清理间隔"))
    Dim gjjg=int(ReadUIConfig("输入框_攻击间隔"))
    Dim hcjg=int(ReadUIConfig("输入框_回城间隔"))
    Dim bjjg=int(ReadUIConfig("输入框_补给间隔"))
    Dim t1=time()
    Dim t2=time()
    Dim t3=time()
    While true
        If Time() - t1 >=cqjg and ReadUIConfig("多选框_定时重启") = true and Thread.GetShareVar("游戏监测") = False Then 
            t1 = Time()
            TracePrint cqjg & "分钟已到,即将重启游戏"
            ShowMessage cqjg & "分钟已到,即将重启游戏"
            Thread.SetShareVar "游戏监测", true
            Thread.SetShareVar "定时重启", true
        ElseIf Time() - t2 >= hcjg and ReadUIConfig("多选框_定时回城")=true and Thread.GetShareVar("游戏监测") = False Then
            t2 = Time()
            TracePrint cqjg & "分钟已到,即将回城"
            ShowMessage cqjg & "分钟已到,即将回城"
            Delay 1000
            Call 点击(50,495,1135)//使用回城
        ElseIf Time() - t3 >= qljg  and Thread.GetShareVar("游戏监测") = False Then
            t3 = Time()
            TracePrint qljg & "分钟已到,准备清理背包"	
            ShowMessage qljg & "分钟已到,准备清理背包"
            Thread.SetShareVar "游戏监测", True
            Thread.SetShareVar "背包检测", true
        End If
        Delay 100
    Wend
End Function
//业务逻辑代码
//-------------------------------------------------------------
Sub 防卡检测()
	TracePrint "检测"
End Sub

Sub 怪物检测()
	TracePrint "检测"
End Sub

Sub 拾取检测()
	TracePrint "检测"
End Sub
//常用的功能封装
//-------------------------------------------------------------
Function 找图()
	TracePrint "找图"
End Function

Function 找色()
	TracePrint "找色"
End Function

Function 找字()
	TracePrint "找字"
End Function

Function 随机点击()
	TracePrint "点击"	
End Function

代码的书写规范

为了降低后期维护难度,以下工作是很有必要的

  • 写注释主要是对功能说明,这段程序干什么的,最好把程序设计思路写上。
  • 开启日志功能,并且每段程序输出调试信息
  • 程序命名简洁明白,不要不中不洋,要么你全部中文命名,要么就全部英文命名,英文命名参照驼峰法。禁止出现如下命名方式:张three、lee四、wangfive,starfarming,pinyin
  • 多用function替代重复出现的sub,减少不必要的的代码数量,增加代码的可读性,无脑sub不可取。

如何学习好按键精灵

思维活跃,举一反三,不要因为学习别人的东西限制了自己的思想。代码只是实现你想法的工具,而不是唯一方式,条条大路通罗马。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

转载请注明出处橙苏博客 » 按键精灵安卓版游戏脚本教学:开发套路
分享到: 生成海报

本站接广告推广、脚本定制、付费咨询

联系微信:Saynothing2020
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活