触动精灵python,[触动精灵]零基础⼩⽩学触动5-8
零基础⼩⽩学触动 - 05 - 触动常⽤函数
点击 滑动 原理
其实都可以分解成按下=》 等待⼀定时间或者移动动作=》  松开
延时 mSleep()
坐标初始化函数  init(0)没什么说的 0是home在下 1是home在右 2是home在左  脚本开始要坐标初始化下  ⽽且不能把init() 放到其他⽂件然后require导⼊ 是对main.lua⽆效的 ⾎泪的教训
⼩知识:require 调⽤⽂件的使⽤注意
require会⾃动判断当前原码是否已经载⼊该⽂件 如果已经载⼊这个⽂件就不会再继续载⼊ 给我们⼀个省事的⽤法
⽆法叠加require ⽐如说 我在主脚本⾥⾯调⽤⾃⼰的模版 但是在⾃⼰的模版⾥⾯调⽤ TSLib库 这样是⽆法在主脚本⾥⾯直接调⽤TSLib库的 只能直接在主脚本⾥⾯载⼊TSLib
多个调⽤⽂件之间的函数 表 变量的互通情况的注意事项
并不清楚lua实现的原理 但是也勉强总结了⼀些经验
1.⼏个⽂件相互调⽤的情形下  ⽂件内的变量函数表或者其他数据类型 如果想要其他⽂件也可以⾃由调⽤ 那么千万不能加local变成局部变量 个⼈原来很喜欢尽可能的减少全局变量的数母来提⾼效率但是这样会导致很多调⽤问题 就算是在main.lua的最外层 ⽤local声明的伪局部变量也不⾏
2.如果某个被调⽤⽂件内的函数或者表 调⽤了其他⽂件的变量 函数 或者表  注意调⽤时候双⽅的前后位置  因为 如果 其他⽂件的变量 函数或者表 尚未载⼊完成 我们就引⽤了 被调⽤⽂件内的函数或者表  那么⾃然参与运算的变量函数表也是空的
⼩知识:取⾊器的⼀个补充 R快捷键的作⽤
⽤于两张截图的多个相同坐标的颜⾊的对⽐⽐按键的切换图⽚对⽐更加精细
gcc编译器好用吗
在第⼀张图⽚上取多个点 这⾥就在蓝⾊对勾上取点
切换到第⼆个图⽚ 点击快捷键R 坐标没变化 但是这⾥显⽰是第⼆张图⽚的颜⾊了
注意:如果按下的每个点后⾯的按钮  那么切换图⽚后 点击快捷键R 后呈献下图
⼩知识:nLog()函数的注意事项
1.输出⽇志到触动精灵 IDE 编辑器
2.由触动精灵脚本编辑器发起的脚本运⾏将会接收到 nLog 回传信息,其他⽅式运⾏的脚本将不会触发 nLog 函数  的确相当于按键的traceprint
for i=1,20 do
nLog(tostring(i))
end
结果
20
19c语言数组删除指定位置元素
18
17
16
15
13
12
11
10
9
6
8java珍妮
7
5
3
2
1
14
小白学python买什么书从结果看 不单单输出的内容是倒着的 ⽽且⽐如14还出现在1之前 顺序也是乱的  是⽇志是异步⽣成的 导致的
解决办法:
nLog之间加上⼀点点延迟经过测试 延迟为1ms的话依然⽆法解决问题 可以设置为10ms 就顺序正常了
for i=1,20 do
nLog(tostring(i))
mSleep(5)
end
为了彻底解决这个问题  暂时想到的解决办法
functionnLogEx(str)
nLog(str)没有基础学编程好学吗
mSleep(10)end
--下⾯是最常⽤的显⽰当前哪个⽂件和第⼏⾏ 也对⾥⾯nLog做了处理
functiontraceprint(str)local info = info(2)
nLog("[" .. tostring(info["source"]) .. "]" .. "第" .. tostring(info["currentline"]) .. "⾏" .. tostring(str))--nLog("[" ..
string.format("%s:%d:", info["source"]:match(".*\\([^\\]*)")) .. "]" .. "第" .. tostring(info["currentline"]) .. "⾏ " .. tostring(str)) mSleep(5)--为了nLog的显⽰顺序的暂时解决办法
end
⼩知识:nLog()函数⽆法满⾜需求  因为我刚发现触动的⽇志系统真的很强⼤ 上⾯那个⽇志函数并不完善
--【脚本实例】--1、写到本地⽇志
initLog("test", 0);--把 0 换成 1 即⽣成形似 test_1397679553.log 的⽇志⽂件
wLog("test","[DATE] Test_1 OK");
mSleep(500);
wLog("test","[DATE] Test_2 OK");
closeLog("test"); --关闭⽇志--2、发送服务器⽇志
initLog("192.168.1.1", 2); --初始化⽇志,并以异步⽅式发送;把 2 换成 3 即为同步发送
wLog("192.168.1.1", "[DATE] Test OK"); --将⽇志发送到 192.168.1.1
closeLog("192.168.1.1"); --关闭服务器连接--3、多⽇志记录
initLog("test_1", 0);
initLog("test_2", 0);
wLog("test_1","[DATE] Test_1 OK");
mSleep(500);
日本java老师wLog("test_2","[DATE] Test_2 OK");
closeLog("test_1"); closeLog("test_2");
简易的例⼦
--避免⽇志顺序不对的对⽇志函数的封装
functionnLogEx(str)
nLog(str)
mSleep(5)end
--wLog加强版 只需要写⽇志内容就好 不需要填写⽇志⽂件名和[data]了--需要配置表的⽇志⽂件元素--运⾏后 在⽇志输出窗⼝可以看到Nlog的信息 也可以在对应的⽇志⽂件⾥⾯到wLog的⽇志记录
functionwLogEx(contents)if config["isLog"] thenwLog(config["logFileName"], tostring(contents))
nLogEx(contents)end
end
--配置区
config={}----脚本信息
config["author"]="点滴积累"--作者
config["QQ"]="1847154827"--QQ
config["scriptName"]="测试脚本⼀"--脚本名字----⽇志相关(暂时不考虑多⽇志并存的情况)
config["isLog"]=true--是否开启⽇志(包含⽇志输出窗⼝和⽇志⽂件两部分)
config["logFileName"]=tostring(config["scriptName"]) .. tostring(os.date("%Y%m%d%H%M%S",os.time())) --只是当前⽇志⽂件名字不是完整路径年⽉⽇时分秒 如XXXX20190816112336 加了个前缀
config["logMode"]=0--0表⽰写⼊本地⽇志⽂件--1 - ⽣成 1 个以时间戳命名的后缀为 .log 的⽂件到 log ⽂件夹下 2 - 异步发送到服务器(⽀持引擎 v1.7.0 及 Android v2.4.1 以上版本)3 - 同步发送到服务器(仅⽀持触动精灵 iOS v1.7.0 及以上版本)
--初始化区
init(0)--设置坐标初始化 这个初始化必须在main.lua下声明 不然整个坐标都会出问题
if config["isLog"] theninitLog(tostring(config["logFileName"]), config["logMode"])--设置⽇志初始化 ⽇志⽂件名和⽇志模式 ⽇志名由配置表的元素提供
end
--测试区
for i=1,20 dowLogEx("hello" .. tostring(i))end
--销毁区--脚本停⽌前要做的事情
if config["isLog"] thencloseLog(config["logFileName"]);end
⼩知识:beforeUserExit 销毁事件的触发
此函数可以被 lua_exit()、⾳量键停⽌、远程接⼝停⽌ 触发 但是脚本⾃⼰报错崩溃这个情况他不会触发 还有脚本正常运⾏完毕也不会触发实际测试哪些能触发
it() X 不会正常触发beforeUserExit 销毁事件  不但不会正常的停⽌ 脚本还有⼀些奇怪的表现 不要⽤os.exit()停⽌脚本
2.lua_exit()√ 以后使⽤这个停⽌脚本
3.编辑器上的停⽌按钮 √
4 ⾳量减号√
零基础⼩⽩学触动 - 06 - 如何写简单的点击脚本
这节课只是取坐标然后点击⽽已
零基础⼩⽩学触动 - 07 - ⾊
⼩知识:toast的显⽰问题
因为这个东西是异步显⽰下图是同时呈现toast和nlog
结论:很遗憾 这个toast⽆法保证实时的显⽰信息 和按键的showmessage⽆法⽐
⼩知识:⽼师提到 使⽤中⽂变量 可能会影响效率 我⾃⼰做了个测试 代码如下

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。