![觸動精靈腳本開發(fā)手冊范本_第1頁](http://file4.renrendoc.com/view/923b0e8aeaf7358ac1ee23e4229de134/923b0e8aeaf7358ac1ee23e4229de1341.gif)
![觸動精靈腳本開發(fā)手冊范本_第2頁](http://file4.renrendoc.com/view/923b0e8aeaf7358ac1ee23e4229de134/923b0e8aeaf7358ac1ee23e4229de1342.gif)
![觸動精靈腳本開發(fā)手冊范本_第3頁](http://file4.renrendoc.com/view/923b0e8aeaf7358ac1ee23e4229de134/923b0e8aeaf7358ac1ee23e4229de1343.gif)
![觸動精靈腳本開發(fā)手冊范本_第4頁](http://file4.renrendoc.com/view/923b0e8aeaf7358ac1ee23e4229de134/923b0e8aeaf7358ac1ee23e4229de1344.gif)
![觸動精靈腳本開發(fā)手冊范本_第5頁](http://file4.renrendoc.com/view/923b0e8aeaf7358ac1ee23e4229de134/923b0e8aeaf7358ac1ee23e4229de1345.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
./DecryptGUI@miniknife2017-09-2718:51字?jǐn)?shù)119624閱讀480798觸動精靈腳本開發(fā)手冊開發(fā)手冊觸動精靈Windows平臺按Ctrl+F打開快捷搜索Mac平臺按command+F打開快捷搜索※右側(cè)文本列表可以找到全部手冊目錄觸動精靈腳本開發(fā)手冊目錄前言學(xué)習(xí)前的準(zhǔn)備越獄及root常識Lua基礎(chǔ)簡明教程腳本開發(fā)取色技巧小白學(xué)觸動零基礎(chǔ)視頻教程觸動精靈開發(fā)者指南觸動產(chǎn)品功能對比如何查看更多文檔腳本開發(fā)相關(guān)工具觸動精靈iOS觸動精靈Android腳本編輯器:TouchSpriteStudio抓色器:TSColorPicker已兼容的模擬器點擊觸摸函數(shù):touchDown、touchUp、touchMove觸摸點擊、滑動函數(shù):catchTouchPoint獲取用戶點擊坐標(biāo)圖色類及屏幕相關(guān)函數(shù):init初始化函數(shù):getDeviceOrient獲取手機(jī)、應(yīng)用屏幕方向〔僅支持iOS函數(shù):setDeviceOrient設(shè)置屏幕方向〔僅支持iOS函數(shù):getScreenSize獲取屏幕分辨率函數(shù):setScreenScale坐標(biāo)縮放函數(shù):keepScreen保持屏幕函數(shù):getColor、getColorRGB獲取屏幕某點顏色值函數(shù):findColorInRegionFuzzy區(qū)域模糊找色函數(shù):findImageInRegionFuzzy區(qū)域模糊找圖函數(shù):findMultiColorInRegionFuzzy區(qū)域多點找色函數(shù):findMultiColorInRegionFuzzyExt高級區(qū)域多點找色函數(shù):findImage高級區(qū)域找圖〔僅支持iOS函數(shù):snapshot截圖函數(shù):imageOperMerge圖片合并〔僅支持iOS開發(fā)輔助類函數(shù):initLog、wLog、closeLog日志函數(shù)函數(shù):sysLog系統(tǒng)日志函數(shù):nLog遠(yuǎn)程日志腳本控制函數(shù):mSleep延時函數(shù):lua_exit退出腳本函數(shù):lua_restart重載腳本函數(shù):luaExitIfCall來電暫停函數(shù):checkScriptAuth腳本授權(quán)系統(tǒng)相關(guān)函數(shù):dialog提示框函數(shù):toast提示函數(shù):dialogRet帶按鈕的對話框函數(shù):dialogInput參數(shù)對話框〔僅支持iOS函數(shù):getNetTime獲取網(wǎng)絡(luò)時間函數(shù):addContactToAB添加聯(lián)系人函數(shù):removeAllContactsFromAB清空通訊錄UTF-8編碼模塊說明函數(shù):utf8.char整數(shù)序列轉(zhuǎn)換字符串函數(shù):utf8.codes獲取字符編碼函數(shù):utf8.codepoint獲取指定位置字符編碼函數(shù):utf8.len統(tǒng)計字符個數(shù)函數(shù):utf8.offset獲取字符位置文字輸入及按鍵模擬函數(shù):inputText輸入字符串函數(shù):switchTSInputMethod切換到觸動/幫你玩輸入法〔僅支持Android函數(shù):getInPutMethod獲取當(dāng)前輸入法包名〔僅支持Android函數(shù):pressHomeKey模擬主屏幕按鍵函數(shù):doublePressHomeKey雙擊HOME鍵〔僅支持iOS函數(shù):keyDown、keyUp模擬鍵盤〔僅支持iOS命令:安卓模擬物理按鍵〔僅支持Android應(yīng)用相關(guān)函數(shù):runApp、closeApp運行、關(guān)閉應(yīng)用函數(shù):isFrontApp判斷前臺應(yīng)用函數(shù):frontAppBid獲取前臺應(yīng)用函數(shù):appBundlePath獲取應(yīng)用安裝路徑函數(shù):appDataPath獲取應(yīng)用數(shù)據(jù)路徑〔僅支持iOS函數(shù):appIsRunning檢測應(yīng)用是否運行函數(shù):openURL打開網(wǎng)絡(luò)地址函數(shù):ipaInstall、ipaUninstall安裝、卸載應(yīng)用〔僅支持iOS函數(shù):install,uninstallApp安裝、卸載應(yīng)用程序〔僅支持Android函數(shù):getInstalledApps獲取應(yīng)用列表函數(shù):isInstalledApk查詢應(yīng)用程序是否安裝〔僅支持Android函數(shù):changeSpeed變速器〔僅支持iOS函數(shù):cleanApp清理應(yīng)用數(shù)據(jù)〔僅支持Android系統(tǒng)信息類函數(shù):getDeviceType獲取設(shè)備類型函數(shù):getDeviceID獲取觸動精靈設(shè)備號函數(shù):getMemoryInfo獲取設(shè)備內(nèi)存信息函數(shù):getTSVer、getOSVer獲取引擎版本號、獲取系統(tǒng)版本號函數(shù):getOSType獲取設(shè)備系統(tǒng)函數(shù):batteryStatus檢測電池狀態(tài)、電量函數(shù):getProcess獲取設(shè)備進(jìn)程列表函數(shù):getDeviceAlias獲取設(shè)備別名〔僅支持iOS企業(yè)版函數(shù):getDeviceName獲取設(shè)備名稱函數(shù):setDeviceName設(shè)置設(shè)備名稱〔僅支持iOS函數(shù):getIMEI獲取設(shè)備IMEI<僅支持Android>函數(shù):getNetworkIP獲取網(wǎng)絡(luò)IP<僅支持Android>函數(shù):getDeviceBrand獲取設(shè)備品牌<僅支持Android>函數(shù):getDeviceModel獲取設(shè)備型號<僅支持Android>函數(shù):getCPUType獲取CPU型號<僅支持Android>函數(shù):getUUID獲取UUID<僅支持Android>函數(shù):getSDCardPath獲取SD卡路徑<僅支持Android>函數(shù):getDPI獲取屏幕DPI和像素密度<僅支持Android>系統(tǒng)控制函數(shù):setRotationLockEnable鎖定設(shè)備方向〔僅支持iOS函數(shù):setWifiEnable無線開關(guān)函數(shù):setBTEnable藍(lán)牙開關(guān)函數(shù):setAirplaneMode飛行模式開關(guān)函數(shù):getVPNStatus獲取VPN狀態(tài)函數(shù):setVPNEnableVPN開關(guān)〔僅支持iOS函數(shù):setCellularDataEnable蜂窩網(wǎng)絡(luò)開關(guān)〔僅支持iOS函數(shù):setAssistiveTouchEnable小圓點開關(guān)〔僅支持iOS函數(shù):setReduceMotionEnable減弱動效開關(guān)〔僅支持iOS函數(shù):getBacklightLevel獲取屏幕亮度函數(shù):setBacklightLevel設(shè)置屏幕亮度函數(shù):setVolumeLevel設(shè)置設(shè)備音量函數(shù):vibrator手機(jī)振動函數(shù):playAudio播放音頻函數(shù):stopAudio停止播放〔僅Android函數(shù):lockDevice鎖定設(shè)備函數(shù):deviceIsLock設(shè)備鎖定狀態(tài)函數(shù):unlockDevice解鎖設(shè)備函數(shù):setAutoLockTime設(shè)置鎖屏?xí)r間函數(shù):resetIDLETimer重置鎖屏計時〔僅支持iOS函數(shù):shakeDevice搖一搖〔僅支持iOS函數(shù):setScreenResolution修改分辨率〔僅支持iOS函數(shù):clearKeyChain清除鑰匙串〔僅支持iOS函數(shù):fakeGPS偽裝位置〔僅支持iOS函數(shù):saveImageToAlbum圖片存入相冊函數(shù):saveVideoToAlbum視頻存入相冊〔僅支持iOS函數(shù):writePasteboard、readPasteboard讀寫剪貼板回調(diào)函數(shù)函數(shù):beforeUserExit終止之前運行文字識別函數(shù):ocrText本地光學(xué)字符識別函數(shù):addTSOcrDict、addTSOcrDictEx、tsOcrText、tsFindText觸動點陣識別函數(shù):addDmOcrDict、dmOcrText、dmFindText打碼點陣識別觸動相關(guān)函數(shù):deviceIsAuth獲取觸動精靈授權(quán)狀態(tài)〔僅支持iOS函數(shù):getRunningAccess獲取當(dāng)前腳本運行權(quán)限〔僅支持Android函數(shù):userPath獲取客戶端文件路徑函數(shù):whoAmI檢測觸動產(chǎn)品類型函數(shù):showFloatButton顯示、隱藏懸浮條命令:強(qiáng)制重啟觸動服務(wù)Thread協(xié)程〔僅支持iOS函數(shù):thread.create創(chuàng)建協(xié)程函數(shù):thread.createSubThread創(chuàng)建子協(xié)程函數(shù):thread.stop停止協(xié)程隊列函數(shù):thread.wait阻塞等待當(dāng)前協(xié)程完成函數(shù):thread.setTimeout設(shè)置協(xié)程超時時間函數(shù):thread.clearTimeout清除協(xié)程超時時間函數(shù):thread.waitAllThreadExit協(xié)程阻塞等待浮動窗口函數(shù):fwShowWnd顯示浮動窗口函數(shù):fwShowTextView顯示文字視圖函數(shù):fwShowImageView顯示圖形視圖函數(shù):fwCloseView關(guān)閉視圖函數(shù):fwCloseWnd關(guān)閉窗口函數(shù):fwGetWndPos獲取窗口位置函數(shù):fwShowButton顯示一個按鈕函數(shù):fwGetPressedButton獲取按鈕點擊事件完整實例腳本UIshowUI什么是json調(diào)用示例用json創(chuàng)建界面全局屬性控件通用屬性界面控件控件:Label標(biāo)簽控件:RadioGroup單選框控件:Edit文本編輯框控件:CheckBoxGroup多選框控件:ComboBox下拉框控件:Image圖片默認(rèn)樣式指定控件尺寸與位置返回值自定義樣式實例代碼webUI〔僅支持iOS函數(shù):webview.new創(chuàng)建webview函數(shù):myweb1.show顯示webview函數(shù):myweb1.set改變webview外觀函數(shù):myweb1.close關(guān)閉webview函數(shù):event.register發(fā)送消息,傳遞參數(shù)完整例子為觸動增加無限可能,Lua擴(kuò)展庫觸動精靈TSLib函數(shù)擴(kuò)展庫云打碼擴(kuò)展庫觸動精靈云打碼使用方法函數(shù):ocr.cloudOcrText、ocr.cloudOcrReportError、ocr.version簡易SMTP郵件發(fā)送庫函數(shù):mail.send觸動精靈中"os.execute"應(yīng)用respring注銷poweroff關(guān)機(jī)reboot重啟clearCache清空緩存delFile刪除文件unzip解壓movefile移動文件copyfile復(fù)制文件newfolder創(chuàng)建文件夾觸動精靈中"io庫"應(yīng)用readFile將指定文件中的內(nèi)容按行讀取getList遍歷文件findFile查找文件file_exists檢測指定文件是否存在在觸動精靈中使用"LuaSocket"網(wǎng)絡(luò)庫如何安裝httpGet請求httpPost請求掛載代理以socket的方式訪問smtp方法發(fā)送mail實現(xiàn)獲取網(wǎng)絡(luò)時間統(tǒng)計毫秒精度的時間生成隨機(jī)數(shù)觸動精靈ts.so擴(kuò)展庫觸動精靈蘇澤擴(kuò)展庫JSON模塊FTP模塊設(shè)備信息模塊字符串處理模塊〔僅支持iOSHTTP模塊PLIST文件操作〔僅支持iOSPOS模塊附錄iOS設(shè)備分辨率一覽表Luamath庫已知與觸動精靈/幫你玩/小精靈/企業(yè)版iOS沖突的插件列表約定的按鍵編碼電話功能按鍵控制類按鍵基本類按鍵安卓手機(jī)如何開啟系統(tǒng)懸浮窗權(quán)限設(shè)備SSH連接工具相關(guān)工具運行庫OCR〔光學(xué)字符識別相關(guān)LuaSQLiteiOS系統(tǒng)設(shè)置參數(shù)對照表按鍵碼表[字母]按鍵碼表[數(shù)字]按鍵碼表[其他]按鍵碼表[更多請自行嘗試]前言
觸動精靈是一款模擬手機(jī)觸摸、按鍵操作的軟件,通過制作腳本,可以讓觸動精靈代替雙手,自動執(zhí)行一系列觸摸、按鍵操作。觸動精靈簡單、易用,不需要掌握任何編程知識就可以錄制出功能強(qiáng)大的腳本;還可以使用編程知識,編寫出功能更為復(fù)雜,交互更為靈活的腳本;只要能夠在手機(jī)上完成的人為操作,觸動精靈都可以代替完成,不僅省力,而且高效。
觸動精靈采用Lua腳本語言作為底層語言,支持Lua5.2.3版本的所有語法與基本函數(shù),并在其的基礎(chǔ)上添加了一些擴(kuò)展函數(shù),用于取色、找色、找圖、發(fā)送觸摸事件等高級功能的實現(xiàn)。用戶在閱讀本函數(shù)說明前,請參考Lua的官方手冊以及相關(guān)資料,學(xué)習(xí)以下基本語法:
-注釋
-變量與類型
-運算符
-條件、循環(huán)控制
-函數(shù)定義
-庫函數(shù)
-……
本說明僅供初等文化水平以上的、了解計算機(jī)編程基本原理的個體學(xué)習(xí)與參考,并不適用于零基礎(chǔ)的編程入門者學(xué)習(xí)編程基本知識。嚴(yán)禁用于商業(yè)以及非法目的,嚴(yán)禁轉(zhuǎn)載、抄襲、未經(jīng)許可地引用。為了便于解釋和描述,本說明中采用了一些非專業(yè)的描述與形容方法〔如:number,敬請理解。因編寫校對倉促,如有錯誤歡迎及時指正,本文中的示例僅供函數(shù)參考,不要直接用于腳本中。重要提示:Lua官方手冊:/manual/5.2/Lua中文開發(fā)手冊:/Lua基礎(chǔ)簡明教程:/lisaisacat/note/636399觸動精靈的腳本開發(fā)、存儲過程必須使用UTF-8文本編碼,如果您出現(xiàn)腳本中文無法正常顯示與處理,請在您使用的編輯器或IDE中設(shè)置文本編碼為UTF-8,謝謝。學(xué)習(xí)前的準(zhǔn)備越獄及root常識在學(xué)習(xí)腳本開發(fā)之前,首先要具備一些關(guān)于iOS越獄和安卓root的知識,以及觸動精靈的常用信息文檔鏈接:/lisaisacat/note/324664看了上面的文檔,你可以具備以下知識:什么樣的手機(jī)適合用來做腳本開發(fā)拿到一臺越獄手機(jī)之后應(yīng)該做什么才能避免白蘋果和報錯Cydia不見了或者已安裝界面空白該怎么辦為什么安裝插件總是報錯呢Lua基礎(chǔ)簡明教程首先你需要了解Lua這門語言的一些基礎(chǔ)知識,什么是循環(huán),什么是函數(shù),布爾型和數(shù)值型分別是什么意思,才有可能看得懂下面的教程和手冊。文檔地址:/lisaisacat/note/636399腳本開發(fā)取色技巧新手在學(xué)習(xí)使用觸動精靈開發(fā)腳本的時候,總會進(jìn)入一些誤區(qū),或者會有一些迷惑的點,覺得無從下手,本文總結(jié)了一些自己在學(xué)習(xí)過程中遇到的問題和經(jīng)驗技巧,歡迎大家一起交流分享。文檔鏈接:/lisaisacat/note/508345看了上面的文檔,你可以具備以下知識:透明背景圖、動圖、帶動畫的界面應(yīng)該怎么取色找色和找圖哪個更好用函數(shù)封裝是什么腳本報錯了怎么辦小白學(xué)觸動零基礎(chǔ)視頻教程如果你沒有任何編程基礎(chǔ),可以先看一下零基礎(chǔ)教學(xué)視頻:/lisaisacat/note/585252看了上面的文檔,你可以具備以下知識:deb插件安裝方法平刷插件CydiaEraserSSH命令工具putty觸動精靈的安裝使用及常識抓色器和編輯器的使用及常識同樣的腳本為什么有的手機(jī)運行異常showUI返回值的調(diào)用showUI應(yīng)該怎么寫才簡潔好用大漠字庫工具的用法觸動精靈開發(fā)者指南由于觸動精靈在線文檔數(shù)量較多,很多人不知道如何查詢,現(xiàn)建立此文檔做為索引,其中會補(bǔ)充一些軟件使用的常用信息。觸動精靈旗下目前有四款軟件:觸動精靈〔iOS/Android、幫你玩商城〔iOS/Android、小精靈〔iOS/Android、企業(yè)版〔iOS/Android開發(fā)中。觸動精靈適合開發(fā)者和有中控開發(fā)能力的工作室使用幫你玩腳本商城適合開發(fā)玩家腳本的開發(fā)者和普通腳本用戶使用小精靈適合有圖標(biāo)和包名自定義需求的開發(fā)者和工作室使用企業(yè)版適合有批量控制設(shè)備需求的工作室使用文檔地址:/miniknife/note/509515觸動產(chǎn)品功能對比產(chǎn)品名稱
自定義圖標(biāo)
錄制
調(diào)試
運行源碼
授權(quán)
批量控制
支持平臺
開發(fā)者平臺觸動精靈iOS
×
√
√
√
30元/臺/年
購買API自行開發(fā)
iOS/Android
/site/index觸動精靈安卓
×
√
√
√
免費
購買API自行開發(fā)
iOS/Android
/site/index觸動小精靈
√
×
×
×
11元/臺/月
購買API自行開發(fā)
iOS/Android
/幫你玩商城
×
×
×
×
免費
×
iOS/Android
/p4u/site/index觸動企業(yè)版
×
×
×
√
38元/臺/年
免費
iOS/Android
/如何查看更多文檔在文檔右側(cè)欄頂部點擊文檔分類菜單欄按鈕,即可查看觸動精靈所有在線文檔。此處輸入圖片的描述腳本開發(fā)相關(guān)工具
工欲善其事,必先利其器,在學(xué)習(xí)觸動精靈腳本編寫前我們需要下載安裝一些輔助工具來完成腳本編寫,包含但不限于以下工具:觸動精靈iOS使用教程:/miniknife/note/307627官方源地址:測試源地址:腳本存放路徑:/var/mobile/Media/TouchSprite/lua默認(rèn)資源路徑:/var/mobile/Media/TouchSprite/res腳本日志路徑:/var/mobile/Media/TouchSprite/log配置文件路徑:/var/mobile/Media/TouchSprite/config觸動精靈Android使用教程:/miniknife/note/443534下載地址:/touchsprite腳本存放路徑:/sdcard/TouchSprite/res/lua默認(rèn)資源路徑:/sdcard/TouchSprite/res/res腳本日志路徑:/sdcard/TouchSprite/res/log配置文件路徑:/sdcard/TouchSprite/res/config※安卓不同機(jī)型路徑有差別,請用userPath函數(shù)獲取路徑注意事項有些函數(shù)不支持低版本觸動精靈,請仔細(xì)閱讀函數(shù)說明并盡量保持觸動精靈客戶端為最新版。測試版為不穩(wěn)定版本,為避免不必要的麻煩,請勿大規(guī)模安裝。測試版和正式版的BundleID不同,不能跨源覆蓋安裝或直接升級,請卸載之后再安裝另一個源的版本。腳本編輯器:TouchSpriteStudio支持函數(shù)自動補(bǔ)全、函數(shù)提示、關(guān)鍵字高亮、文件傳送、遠(yuǎn)程運行、自動縮進(jìn)等常用功能,已內(nèi)置所有至最新2.3.6版本觸動精靈擴(kuò)展函數(shù),推薦使用。下載地址:/tools使用手冊:/miniknife/note/123055視頻教程:/lisaisacat/note/324664#編輯器與抓色器的使用抓色器:TSColorPicker一個趁手的抓色器可以讓你的腳本開發(fā)過程變的輕松愉快,在此強(qiáng)烈推薦觸動抓色器,快捷抓點、一鍵生成代碼、遠(yuǎn)程抓屏,讓你如虎添翼。具體使用方法請閱讀壓縮包內(nèi)附帶的說明〔遠(yuǎn)程抓屏功能需使用觸動精靈iOSv2.1.5以上版本。下載地址:/tools使用手冊:/havonz/note/94681視頻教程:/lisaisacat/note/324664#編輯器與抓色器的使用已兼容的模擬器猩猩模擬器、夜神模擬器、海馬玩模擬器、逍遙模擬器、51模擬器、雷電模擬器模擬器使用教程:/miniknife/note/443336從系統(tǒng)兼容和資源占用角度考慮,推薦使用雷電模擬器、夜神模擬器。點擊觸摸函數(shù):touchDown、touchUp、touchMove觸摸點擊、滑動函數(shù)名稱:觸摸按下、抬起、移動函數(shù)功能:通過按下、抬起、移動動作發(fā)送觸摸事件。函數(shù)方法touchDown<index,x,y>;touchMove<index,x,y>;touchUp<index,x,y>;返回值:無參數(shù)
類型
說明index
number
手指序號〔可省略x
number
屏幕橫坐標(biāo)y
number
屏幕縱坐標(biāo)腳本實例:快速劃動touchDown<150,550>;
--在坐標(biāo)<150,550>按下mSleep<30>;touchMove<150,600>;
--移動到坐標(biāo)<150,600>,注意一次滑動的坐標(biāo)間隔不要太大,不宜超過50像素mSleep<30>;touchUp<150,600>;
--在坐標(biāo)<150,600>抬起連續(xù)劃動touchDown<150,550>;
--在坐標(biāo)<150,550>按下fori=0,400,10do
--使用for循環(huán)從起始點連續(xù)橫向移動到終止點
touchMove<150+i,550>;
mSleep<10>;
--延遲endtouchUp<150+200,550>;
--在坐標(biāo)<350,550>抬起多點觸控touchDown<1,200,400>;
--手指1在坐標(biāo)<200,400>按下touchDown<2,300,500>;
--手指2在坐標(biāo)<300,500>按下mSleep<50>;fori=1,100,1do
--使用for循環(huán)使兩只手指同時分離
touchMove<1,200-i,400-i>;
touchMove<2,300+i,500+i>;
mSleep<10>;endtouchUp<1,200-100,400-100>;
--抬起手指1touchUp<2,300+100,500+100>;
--抬起手指2封裝一個點擊函數(shù)functionclick<x,y>
touchDown<x,y>
mSleep<30>
touchUp<x,y>endclick<100,200>--點擊坐標(biāo)100,200位置方形漸開線init<1>mSleep<1000>localx=1010--起始坐標(biāo)xlocaly=698
--起始坐標(biāo)ylocalv=30
--兩點間距離touchDown<x,y>mSleep<100>forvar=1,20do
j=0
k=v
for_i=1,2do
fori=1,10do
x=x+j
y=y+k
touchMove<x,y>
mSleep<20>
end
j=v
k=0
end
v=v*<-1.05>endtouchUp<x,y>圓形漸開線init<1>mSleep<1000>localx0=1010--起始坐標(biāo)xlocaly0=698
--起始坐標(biāo)ylocalrr=20--設(shè)置遞增半徑locall=10--設(shè)置點間距l(xiāng)ocalp=0--初始化角度
localr=30--設(shè)置首圈半徑localrn=10--設(shè)置圈數(shù)touchDown<x0,y0>mSleep<100>forvar=1,rndo
whilep<math.pi*2do
x=x0+r*math.cos<p>
y=y0-r*math.sin<p>
touchMove<x,y>
mSleep<10>
p=p+l/r
end
p=0
r=r+rrendtouchUp<x0,y0>安卓點擊滑動失效處理方法在部分安卓應(yīng)用程序中的HTML5頁面中,出現(xiàn)腳本能夠點擊,但點擊沒有后續(xù)反應(yīng)的問題。此問題目前可以通過以下寫法來解決:os.execute<"inputmousetapxy">,其中xy為坐標(biāo)值os.execute<"inputmouseswipex1y1x2y2">--滑動,x1,y1為滑動初始坐標(biāo),x2,y2為滑動結(jié)束坐標(biāo)如果以上命令還是不生效可以用下面的API方法代替mouse進(jìn)行嘗試:keyboardjoysticktouchnavigationtouchpadtrackballstylusdpadtouchscreengamepad舉例:os.execute<"inputkeyboardtap100100">注意事項:需要注意的是在使用touchDown、touchMove、touchUp函數(shù)時,中間一定要插入一定的延時,建議大于20毫秒,否則可能會出現(xiàn)點擊無效等異常情況。使用滑動函數(shù)時,新手常犯的錯誤就是兩點之間滑動距離過大,請注意touchDown、touchMove的坐標(biāo)間隔不宜超過50像素。非多點觸控可省略手指id新手使用點擊、隨機(jī)點擊、直線或角度滑動等相關(guān)函數(shù)請參考函數(shù)擴(kuò)展庫名詞解析:手指序號,用于多點觸控的支持。標(biāo)記多只手指,來分別控制它們的移動。屏幕坐標(biāo),橫坐標(biāo)為x,縱坐標(biāo)為y,單位為像素。例如,iPhone4與iPhone4S的屏幕分辨率為640*960,則其最大橫坐標(biāo)為640,最大縱坐標(biāo)為960。for循環(huán)是Lua基本語法,屬于循環(huán)控制。函數(shù):catchTouchPoint獲取用戶點擊坐標(biāo)函數(shù)名稱:獲取用戶點擊坐標(biāo)函數(shù)功能:調(diào)用該函數(shù)后,觸動精靈將等待用戶完成一次或多次屏幕點擊,并返回點擊的坐標(biāo)。函數(shù)方法x,y=catchTouchPoint<>;返回值:numberx,yret=catchTouchPoint<touchCount>;返回值:table類型ret返回值
類型
說明x
number
用戶點擊屏幕的橫坐標(biāo)y
number
用戶點擊屏幕的縱坐標(biāo)ret
table
當(dāng)touchCound參數(shù)有效時,將返回一個包含所有點擊坐標(biāo)的table參數(shù)
類型
說明touchCount
number
所需獲取的點/坐標(biāo)個數(shù)〔需引擎版本iOSv2.2.4,Androidv1.1.9以上支持腳本實例:dialog<"一秒后接收用戶一次點擊",0>;mSleep<1000>;x,y=catchTouchPoint<>;dialog<"x:"..x.."y:"..y,0>;--獲取多個點擊坐標(biāo)dialog<"一秒后接收用戶三次點擊",0>;mSleep<1000>;localret=catchTouchPoint<3>;fori=1,#retdo
dialog<"第"..i.."次點擊的位置:"..i..",x="..ret[i].x..",y="..ret[i].y>;end注意事項:部分安卓模擬器不支持該函數(shù)。此函數(shù)將阻止腳本繼續(xù)運行,一直等待用戶完成屏幕點擊。此函數(shù)獲取到的坐標(biāo)為豎屏坐標(biāo),橫屏情況請自行轉(zhuǎn)換。本函數(shù)有較小的延遲,連續(xù)點擊時,請勿點擊過快。在iOS引擎版本v2.2.4以上中可接收多個點擊坐標(biāo)并以table形式返回。參數(shù)
類型
說明touchCount
number
所需獲取的點/坐標(biāo)個數(shù)〔需引擎版本iOSv2.2.4,Androidv1.1.9以上支持圖色類及屏幕相關(guān)函數(shù):init初始化函數(shù)名稱:初始化函數(shù)功能:腳本運行前必須調(diào)用,以設(shè)置設(shè)備方向及坐標(biāo)系。函數(shù)方法init<rotate,bid>;返回值:無返回值
類型
說明bid
string
選填,目標(biāo)程序的BundleID,填寫"0"時自動使用當(dāng)前運行的應(yīng)用Rotate
number
必填,屏幕方向,0-豎屏,1-home鍵在右邊,2-home鍵在左邊安卓設(shè)備根據(jù)機(jī)型初始方向有區(qū)別,需要開發(fā)者自行調(diào)試,0-初始方向,1-初始方向向左旋轉(zhuǎn)90°,2-初始方向向右旋轉(zhuǎn)90°init.png-90.8kB腳本實例:init<0>
--iOS設(shè)備以Home鍵在下方時的屏幕左上角為坐標(biāo)系原點<0,0>,iOS7以上系統(tǒng)有效;安卓設(shè)備以當(dāng)前屏幕默認(rèn)截圖方向進(jìn)行初始化init<1>;
--iOS設(shè)備以當(dāng)前應(yīng)用Home鍵在右邊初始化,即以Home鍵在右側(cè)時的橫屏左上角為屏幕坐標(biāo)原點<0,0>;安卓設(shè)備以屏幕默認(rèn)截圖方向向左旋轉(zhuǎn)90°進(jìn)行初始化注意事項:安卓系統(tǒng)不同設(shè)備初始的截圖方向有所不同,編寫腳本前請用截圖函數(shù)確認(rèn)設(shè)備的默認(rèn)方向。iOS6系統(tǒng)如果填寫bid參數(shù)的話,請在使用runApp函數(shù)之后再使用此函數(shù),才能獲取到正確的當(dāng)前應(yīng)用坐標(biāo)系。此函數(shù)可在腳本運行過程中多次調(diào)用已改變屏幕方向。如在腳本中未指定屏幕方向,系統(tǒng)將默認(rèn)為豎屏或初始方向。參考資料:BundleID的獲取方法1.在觸動精靈客戶端的更多->應(yīng)用ID查詢中能查看到應(yīng)用程序的BundleID;2.iOS使用iFile、PP助手等軟件可查看應(yīng)用文件夾下的Info.plist,其中的CFBundleIdentifier即為該應(yīng)用的BundleID。3.使用frontAppBid函數(shù),前臺運行要獲取BundleID的應(yīng)用,運行此函數(shù)并用diolag、toast、nLog函數(shù)顯示返回值。函數(shù):getDeviceOrient獲取手機(jī)、應(yīng)用屏幕方向〔僅支持iOS函數(shù)名稱:獲取手機(jī)、應(yīng)用屏幕方向函數(shù)功能:用于獲取當(dāng)前手機(jī)方向和應(yīng)用方向支持版本:引擎版本iOSv2.3.9以上,Android暫不支持函數(shù)方法:orient=getDeviceOrient<>返回值:numberorient.app,orient.dev返回值
類型
說明orient.app
number
前臺應(yīng)用方向orient.dev
number
手機(jī)屏幕方向腳本實例:localorient=getDeviceOrient<>dialog<"屏幕方向:"..orient.dev.."\n應(yīng)用方向:"..orient.app,0>注意事項:屏幕方向,0-3,和init方向一致該函數(shù)獲取時間長,不建議頻繁調(diào)用,否則可能會影響腳本效率函數(shù):setDeviceOrient設(shè)置屏幕方向〔僅支持iOS函數(shù)名稱:設(shè)置屏幕方向函數(shù)功能:設(shè)置當(dāng)前腳本運行時的屏幕方向。支持版本:引擎版本iOSv2.3.4以上,Android暫不支持函數(shù)方法setDeviceOrient<numberrotate>;返回值:無參數(shù)
類型
說明rotate
number
0-豎屏;1-Home鍵在右邊;2-Home鍵在左邊函數(shù):getScreenSize獲取屏幕分辨率函數(shù)名稱:獲取屏幕分辨率,取分辨率函數(shù)功能:用于獲取設(shè)備屏幕的分辨率,用來判斷坐標(biāo)系的使用。函數(shù)方法width,height=getScreenSize<>;返回值:numberwidth,height返回值
類型
說明width
number
獲取到的屏幕寬度height
number
獲取到的屏幕高度腳本實例:根據(jù)分辨率判斷腳本是否適配width,height=getScreenSize<>;ifwidth==640andheight==1136then
--iPhoneSE,5,5S,iPodtouch5dialog<"iPhoneSE,5,5S,iPodtouch5">elseifwidth==640andheight==960then
--iPhone4,4S,iPodtouch4dialog<"iPhone4,4S,iPodtouch4">elseifwidth==320andheight==480then
--iPhone非高分屏dialog<"iPhone非高分屏">elseifwidth==768andheight==1024then
--iPad1,2,mini1dialog<"iPad1,2,mini1">elseifwidth==1536andheight==2048then
--iPad3,4,5,mini2dialog<"iPad3,4,5,mini2">elseifwidth==1080andheight==1920thendialog<"小米4,華為榮耀6p等">elseifwidth==720andheight==1280thendialog<"紅米note2等">elseifwidth==768andheight==1280thendialog<"魅藍(lán)等">elseifwidth==800andheight==1280thendialog<"三星N5100等">elseifwidth==480andheight==800thendialog<"酷派8017-T00等">end注意事項:統(tǒng)一為iOS豎屏〔Home鍵在下方時、安卓初始方向屏幕的寬度和高度。部分安卓設(shè)備存在無法獲取到屏幕分辨率的問題,需要在腳本中判斷如果返回值小于0則指定一個固定的寬高。函數(shù):setScreenScale坐標(biāo)縮放函數(shù)名稱:坐標(biāo)縮放函數(shù)功能:用于對屏幕坐標(biāo)進(jìn)行縮放,可直接影響點擊、取色、找色函數(shù)中的坐標(biāo)參數(shù)。支持版本:引擎版本iOSv2.2.7,Androidv1.2.8以上函數(shù)方法setScreenScale<flag,width,height>;返回值:無參數(shù)
類型
說明flag
boolean
true-打開,false-關(guān)閉width
number
基準(zhǔn)屏幕的寬度height
number
基準(zhǔn)屏幕的高度腳本實例:setScreenScale<true,750,1334>
--以750,1334分辨率為基準(zhǔn)坐標(biāo)進(jìn)行縮放--[[
當(dāng)此函數(shù)打開時,將影響點擊、取色、單點模糊找色函數(shù)
]]setScreenScale<false>--關(guān)閉縮放注意事項:當(dāng)此函數(shù)打開時,受影響的函數(shù)為點擊和單點找色函數(shù):touchDowntouchUptouchMovegetColorgetColorRGBfindColorInRegionFuzzysnapshot多點找色函數(shù)不受此函數(shù)影響當(dāng)兩個設(shè)備寬高比相差較大時,此函數(shù)轉(zhuǎn)換后的效果較差函數(shù):keepScreen保持屏幕函數(shù)名稱:保持屏幕,保持圖像函數(shù)功能:在腳本中保持當(dāng)前屏幕內(nèi)容不變,多次調(diào)用取色、找色、截圖、找圖等函數(shù)時,直接調(diào)用保持的內(nèi)容。該函數(shù)為優(yōu)化類函數(shù),能夠為大量的靜態(tài)圖像處理函數(shù)提供性能優(yōu)化。函數(shù)方法keepScreen<flag>;返回值:無參數(shù)
類型
說明flag
boolean
保持開關(guān)腳本實例:遍歷屏幕區(qū)塊keepScreen<true>;
--打開保持屏幕,當(dāng)參數(shù)為true時啟用屏幕保持,運行到該函數(shù)時內(nèi)存中的屏幕圖像保持在這一時刻fork=1,640,10do
forj=1,960,10do
--格式化為十六進(jìn)制文本
color=string.format<"%X",getColor<k,j>>;
--輸出到本地日志
nLog<"<"..k..","..j..">Color:"..color..".">;
endendkeepScreen<false>;
--關(guān)閉保持屏幕,當(dāng)參數(shù)為false時關(guān)閉屏幕保持,釋放內(nèi)存中的屏幕圖像,以備下一次繼續(xù)保持。注意事項:據(jù)不完全統(tǒng)計,與不使用該函數(shù)相比,使用此函數(shù)會使普通屏上腳本取色速率提升100倍,高分屏上腳本取色速率提升50倍。在執(zhí)行大量靜態(tài)圖像操作時,請務(wù)必使用該函數(shù)優(yōu)化腳本性能。該函數(shù)一般用于畫面變動節(jié)奏較慢,但需要根據(jù)大量取色、找色來完成計算和操作的腳本中,例如"天天愛消除"、"天天星連萌"這樣的游戲。名詞解析:靜態(tài)圖像處理,指可在某一狀態(tài)下屏幕內(nèi)容保持到內(nèi)存〔不影響顯示,對其進(jìn)行進(jìn)一步的多次分析。否則,每次使用圖像類函數(shù),都將截取一次屏幕內(nèi)容。保持開關(guān),邏輯型只有兩種屬性:true為真,false為假。注意事項:當(dāng)使用keepScreen<true>;時啟用屏幕保持,運行到該函數(shù)時內(nèi)存中的屏幕圖像保持在這一時刻。當(dāng)使用keepScreen<false>;時關(guān)閉屏幕保持,釋放內(nèi)存中的屏幕圖像,以備下一次繼續(xù)保持。函數(shù):getColor、getColorRGB獲取屏幕某點顏色值函數(shù)名稱:獲取顏色、獲取顏色RGB、取色函數(shù)功能:獲取某一點的顏色值〔RGB、顏色R,G,B值。函數(shù)方法color=getColor<x,y>;返回值1整型colorcolor_r,color_g,color_b=getColorRGB<x,y>;返回值2整型color_r,color_g,color_b參數(shù)
類型
說明x
number
將獲取顏色值的屏幕橫坐標(biāo)y
number
將獲取顏色值的屏幕縱坐標(biāo)返回值
類型
說明color
number
該點的十進(jìn)制顏色值RGBcolor_r,color_g,color_b
number
該點顏色的RGB值腳本實例:如果某點符合某顏色則點擊color=getColor<100,100>;
--獲取<100,100>的顏色值,賦值給color變量ifcolor==0xffffffthen
--如果該點的顏色值等于0xffffff
touchDown<100,100>;
--那么點擊該點
mSleep<30>;
touchUp<100,100>;end--亦可寫作ifgetColor<100,100>==0xffffffthen
touchDown<100,100>;
mSleep<30>;
touchUp<100,100>;end如果某點的顏色與某顏色相似則點擊r,g,b=getColorRGB<100,100>;
--獲取<100,100>的顏色值,賦值給color變量ifr>200andg<150then
--如果紅色強(qiáng)度大于
200,綠色強(qiáng)度小于150
touchDown<100,100>;
--那么點擊該點
mSleep<30>;
touchUp<100,100>;end封裝一個單點模糊比色函數(shù)functionisColor<x,y,c,s>
--封裝函數(shù),函數(shù)名isColor
localfl,abs=math.floor,math.abs
s=fl<0xff*<100-s>*0.01>
localr,g,b=fl<c/0x10000>,fl<c%0x10000/0x100>,fl<c%0x100>
localrr,gg,bb=getColorRGB<x,y>
ifabs<r-rr><sandabs<g-gg><sandabs<b-bb><sthen
returntrue
endend--下面為函數(shù)用法ifisColor<963,
961,0x7b593f,90>then--90為模糊值,值越大要求的精確度越高
touchDown<963,961>
mSleep<50>
touchUp<963,961>end多點模糊比色在實際游戲腳本制作中,很多界面單靠1個點不容易進(jìn)行準(zhǔn)確的判斷,這里封裝一個配合TABLE使用的多點模糊比色函數(shù)來實現(xiàn)精確判斷:functionmultiColor<array,s>
s=math.floor<0xff*<100-s>*0.01>
keepScreen<true>
forvar=1,#arraydo
locallr,lg,lb=getColorRGB<array[var][11],array[var][12]>
localr=math.floor<array[var][13]/0x10000>
localg=math.floor<array[var][14]%0x10000/0x100>
localb=math.floor<array[var][15]%0x100>
ifmath.abs<lr-r>>sormath.abs<lg-g>>sormath.abs<lb-b>>sthen
keepScreen<false>
returnfalse
end
end
keepScreen<false>
returntrueend--用法g_t_Table={
{1962,
52,0xefdccf},
{2150,
50,0xefd8d0},
{1964,
76,0xe9d1c5},
{2152,
74,0xefdcd1},
{2122,
62,0xf1ddd1},
{2146,1080,0x893824},
{1840,1082,0x593724},}ifmultiColor<g_t_Table,90>then
touchDown<100,100>
mSleep<50>
touchUp<100,100>end名詞解析:參數(shù)s為模糊度,范圍0-100,一般使用90即可。實例中的TABLE格式可使用觸動精靈抓色器生成。注意事項:getColor與getColorRGB的作用是一樣的,只不過前者返回單變量,后者返回R,G,B三變量。如直接使用例子中的代碼進(jìn)行測試,請在全部代碼之前,加入2~3秒延遲;或者使用循環(huán)語句。因為腳本開始運行時,會出現(xiàn)音量提示遮蓋在前臺,影響獲取顏色。特別注意,getColor函數(shù)獲得的顏色值十六進(jìn)制文本中,實際順序為RGB。新手找色可使用觸動精靈函數(shù)擴(kuò)展庫中的比色和多點比色函數(shù),更加簡單方便。參考資料如何獲取屏幕上某點的顏色在你想在設(shè)備上截圖,iOS同時按下電源鍵和Home鍵,安卓為電源鍵和音量鍵-即可進(jìn)行截圖〔此時屏幕會閃一下。使用觸動精靈抓色器〔/tools可方便的獲取所需坐標(biāo)點的顏色信息,推薦使用。常見顏色表:/other/rgb.htm名詞解析R,G,B值,即代表紅<Red>、綠<Green>、藍(lán)<Blue>三個通道的顏色強(qiáng)度。整型,指的是可以用十、十六、八進(jìn)制指定的數(shù)據(jù)類型。使用十六進(jìn)制符號,必須加上0x。賦值是Lua基本語法,操作符為"="〔一個等號。等于是Lua基本語法,屬于條件控制,操作符為"=="〔兩個等號。新手常常將等于寫作賦值,從而導(dǎo)致編譯出現(xiàn)錯誤。函數(shù):findColorInRegionFuzzy區(qū)域模糊找色函數(shù)名稱:區(qū)域找色、模糊找色、區(qū)域模糊找色函數(shù)功能:在指定區(qū)域中,尋找符合指定顏色的坐標(biāo),支持模糊查找。函數(shù)方法x,y=findColorInRegionFuzzy<color,degree,x1,y1,x2,y2>;返回值:numberx,y參數(shù)
類型
說明color
number
將要找的十六進(jìn)制顏色值degree
number
尋找精度,范圍:1~100,當(dāng)是100時為完全匹配x1
number
找色區(qū)域左上角頂點屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點屏幕縱坐標(biāo)返回值
類型
說明x,y
number
找到的點坐標(biāo),如未找到則返回-1,-1腳本實例:1.精確尋找指定區(qū)域中,指定顏色的坐標(biāo),并按下--尋找符合條件的點x,y=findColorInRegionFuzzy<0x112233,100,50,50,300,300>;ifx~=-1andy~=-1then
--如果在指定區(qū)域找到某點符合條件
touchDown<x,y>;
--那么單擊該點
mSleep<30>;
touchUp<x,y>;else
--如果找不到符合條件的點
dialog<"未找到符合條件的坐標(biāo)!",0>;end2.模糊查找指定區(qū)域中,盡可能接近指定顏色的點,并按下fordeg=100,1,-1do
--使用for循環(huán)不斷降低精確度
x,y=findColorInRegionFuzzy<0xffffff,deg,50,50,300,300>;
ifx~=-1andy~=-1then
--如果在指定區(qū)域找到某點符合條件
nLog<"在模糊度:"..deg.."下找到一個相似的顏色,坐標(biāo):"..x..":"..y>
touchDown<x,y>;
--那么單擊該點
mSleep<30>
touchUp<x,y>;
break;
--并跳出循環(huán)
endend注意事項:未找到則返回<-1,-1>,所以找到時x,y均不等于-1,~=為不等于操作符,是Lua基本語法,屬于邏輯控制。通過不斷降低模糊查找精確度的方法在指定區(qū)域查找到的不一定是最接近指定顏色的點,該代碼應(yīng)用過程中,建議使用"保持屏幕"減少性能損耗,參見"保持屏幕"一章。函數(shù):findImageInRegionFuzzy區(qū)域模糊找圖函數(shù)名稱:區(qū)域找圖、模糊找圖、區(qū)域模糊找圖函數(shù)功能:在指定區(qū)域中,尋找指定的圖案,返回其左上角頂點坐標(biāo),支持模糊查找。支持版本:引擎版本iOSv1.0,Androidv2.1.0以上函數(shù)方法x,y=findImageInRegionFuzzy<picpath,degree,x1,y1,x2,y2,alpha,type>;返回值:x,y參數(shù)
類型
說明picpath
string
將要尋找的圖片文件名〔<Android僅支持png格式>degree
number
尋找精度,范圍:1~100,當(dāng)是100時為完全匹配x1
number
找色區(qū)域左上角頂點屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點屏幕縱坐標(biāo)mask
number
忽略的顏色值〔透明色若無請?zhí)?type
number
找圖類型,默認(rèn)不寫為RGB找圖,更多請看注意事項返回值
類型
說明x,y
number
找到的圖片的左上角頂點坐標(biāo),如未找到則返回-1,-1腳本實例:精確尋找指定區(qū)域中,指定圖片的位置--尋找符合條件的圖片〔假設(shè)圖片的背景顏色為白色x,y=findImageInRegionFuzzy<"test_alpha.png",90,0,0,320,480,0xffffff>;ifx~=-1andy~=-1then
--如果在指定區(qū)域找到某圖片符合條件
touchDown<x,y>;
--那么單擊該圖片
mSleep<30>
touchUp<x,y>;else
--如果找不到符合條件的圖片
dialog<"未找到符合條件的坐標(biāo)!",0>;end注意事項:以下找圖幾種type方式:type為空-RGB找圖,適用于靜態(tài)畫面,找圖速度快,兼容性一般type為1-二值化找圖,適用于所有畫面,找圖速度慢,兼容性好type為2-二值化找圖,適用于靜態(tài)畫面,找圖速度快,兼容性好Android僅支持png格式圖片。iOS默認(rèn)圖片路徑為/var/mobile/Media/TouchSprite/res,Android為/mnt/sdcard/TouchSprite/res〔參數(shù)中無需填寫完整路徑,自建目錄請?zhí)顚懴鄬β窂?。忽略的顏色值指將要尋找的圖片的背景顏色,即在屏幕畫面上不匹配尋找對象的背景顏色。若該函數(shù)找圖不理想可使用findImage高級區(qū)域找圖,幾種找圖方式可配合使用。參數(shù)type為1需引擎版本iOSv2.3.6-7以上支持,type為2需要引擎版本iOSv2.3.7以上支持。函數(shù):findMultiColorInRegionFuzzy區(qū)域多點找色函數(shù)名稱:多點找色,區(qū)域多點找色函數(shù)功能:在指定區(qū)域,根據(jù)顏色以及其周邊點的顏色,尋找符合條件的點的坐標(biāo),支持模糊查找。函數(shù)方法x,y=findMultiColorInRegionFuzzy<color,posandcolor,degree,x1,y1,x2,y2>;返回值:x,y參數(shù)
類型
說明color
number
欲尋找的參照點顏色posandcolor
string
周邊點顏色參數(shù)degree
number
尋找精度,范圍:1~100,當(dāng)是100時為完全匹配x1
number
找色區(qū)域左上角頂點屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點屏幕縱坐標(biāo)返回值
類型
說明x,y
number
返回符合條件的參照點的坐標(biāo),如未找到則返回-1,-1進(jìn)階指導(dǎo):當(dāng)我們使用"區(qū)域模糊找色"函數(shù)時,常常會因為屏幕上有大量符合指定顏色的點而找不到需要的坐標(biāo)。該函數(shù)通過在尋找到一個符合指定顏色color的坐標(biāo)后,進(jìn)一步確認(rèn)其周邊點坐標(biāo)的方式,來確定準(zhǔn)確目標(biāo)。例如,現(xiàn)在我們在圖像上找到了我們需要的一個按鈕,這個按鈕的圖案是不變的,但是它的整體位置卻會在整個屏幕上變化,現(xiàn)在我們想要在腳本運行時得到其坐標(biāo)。我們首先找到一個點:這個點的顏色為0x181F85,坐標(biāo)為<268,802>。記錄下來,接著找這個按鈕上的另外一個點:這個點的顏色為0x00BBFE,坐標(biāo)為<297,803>,相對于第一個點的坐標(biāo)為<29,1>。記錄下來,接著找這個按鈕上的第三個點和第四個點。第三個點的顏色為0x0B6BBE,坐標(biāo)為<371,798>,相對于第一個點的坐標(biāo)為<103,-4>。第四個點的顏色為0x150972,坐標(biāo)為<333,811>,相對于第一個點的坐標(biāo)為<65,9>?,F(xiàn)在我們找到了需要的三個點:序號
顏色
坐標(biāo)
相對坐標(biāo)1
0x181F85
<268,802>
<0,0>2
0x00BBFE
<297,803>
<29,1>3
0x0B6BBE
<371,798>
<103,-4>4
0x150972
<333,811>
<65,9>現(xiàn)在我們可以把它寫成多點找色的格式了:--多點找色--在屏幕上以左上角坐標(biāo)<0,0>和右下角坐標(biāo)<639,959>確定的區(qū)域〔即全屏范圍內(nèi)尋找符合偏移范圍和顏色的3個坐標(biāo)點x,y=findMultiColorInRegionFuzzy<0x181F85,"29|1|0x00BBFE,103|-4|0x0B6BBE,65|9|0x150972",100,0,0,639,959>;dialog<x..","..y,0>--另外一種偏色模式,引擎版本iOSv2.4.1以上支持--main為參照點0xffffff的偏色,list為周邊點的偏色,如果想對每一個周邊點單獨偏色,在每一個偏色后面加上偏色值即可,如"0|0|0x1ac819|0x202020"x,y=findMultiColorInRegionFuzzy<0xffffff,"0|0|0x1ac819,-4|-208|0x18cb76,3|58|0x21cc79",90,x,y,x0,y0,
{main=0x101010,list=0x202020}>dialog<x..","..y,0>那么返回的<x,y>就應(yīng)該是<268,802>了。即使這個按鈕平移了,這個點的坐標(biāo)變了,也可以尋找到其準(zhǔn)確位置。注意事項:posandcolor參數(shù)中的坐標(biāo)為相對坐標(biāo)。多點找色的代碼可直接用觸動精靈取色工具生成,其使用方法參見圖文教程。顏色值的十六進(jìn)制文本中,其順序為RGB。相對于第一個點的坐標(biāo),即用這個點的橫坐標(biāo)、縱坐標(biāo)分別減去第一個點的橫坐標(biāo)、縱坐標(biāo),可以為負(fù)數(shù)。使用此函數(shù)時精度參數(shù)設(shè)置過低,會導(dǎo)致性能大幅下降。引擎版本iOSv2.3.6以上要求包括基準(zhǔn)點在內(nèi)的所有參照點都必須在查找范圍之內(nèi)。函數(shù):findMultiColorInRegionFuzzyExt高級區(qū)域多點找色函數(shù)名稱:高級多點找色,高級區(qū)域多點找色函數(shù)功能:在指定區(qū)域,根據(jù)顏色以及其周邊點的顏色,尋找所有符合條件的點的坐標(biāo),支持模糊查找。支持版本:引擎版本iOSv1.0,Androidv1.2.8以上函數(shù)方法point=findMultiColorInRegionFuzzyExt<color,posandcolor,degree,x1,y1,x2,y2>;返回值:table類型point參數(shù)
類型
說明color
number
欲尋找的參照點顏色posandcolor
string
周邊點顏色參數(shù)degree
number
尋找精度,范圍:1~100,當(dāng)是100時為完全匹配x1
number
找色區(qū)域左上角頂點屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點屏幕縱坐標(biāo)返回值
類型
說明point
table
以table形式返回所有符合條件的參照點的坐標(biāo),如未找到則返回的table為空返回的table為以下形式:table={
{x=100,y=110},
{x=200,y=210},
{x=300,y=310},
...}腳本實例:point=findMultiColorInRegionFuzzyExt<0xcf0000,"-37|3|0x942814,-38|20|0xeba62d,1|54|0xf2b054,28|22|0x8a5707",90,97,220,903,701>if#point~=0then
--如返回的table不為空〔至少找到一個符合條件的點
forvar=1,#pointdo
nLog<point[var].x..":"..point[var].y>
endend--另外一種偏色模式,引擎版本iOSv2.4.1以上支持--main為參照點0xffffff的偏色,list為周邊點的偏色,如果想對每一個周邊點單獨偏色,在每一個偏色后面加上偏色值即可,如"0|0|0x1ac819|0x202020"point=findMultiColorInRegionFuzzyExt<0xffffff,"0|0|0x1ac819,-4|-208|0x18cb76,3|58|0x21cc79",90,x,y,x0,y0,
{main=0x101010,list=0x202020}>if#point~=0then
--如返回的table不為空〔至少找到一個符合條件的點
forvar=1,#pointdo
nLog<point[var].x..":"..point[var].y>
endend注意事項:引擎版本iOSv2.3.6以上版本中要求包括基準(zhǔn)點在內(nèi)的所有參照點都必須在查找范圍之內(nèi)。函數(shù):findImage高級區(qū)域找圖〔僅支持iOS函數(shù)名稱:區(qū)域找圖、高級區(qū)域找圖函數(shù)功能:在指定區(qū)域中,尋找指定的圖案,返回其左上角頂點坐標(biāo)。支持版本:引擎版本iOSv2.3.0以上函數(shù)方法x,y=findImage<picpath,x1,y1,x2,y2,alpha>;返回值:numberx,y參數(shù)
類型
說明picpath
string
將要尋找的圖片文件名x1
number
找色區(qū)域左上角頂點屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點屏幕縱坐標(biāo)alpha
number
匹配精度,此參數(shù)值越低匹配精度越高,默認(rèn)為40000000,此參數(shù)可省略返回值
類型
說明x,y
number
找到的圖片的左上角頂點坐標(biāo),如未找到則返回-1,-1腳本實例:1.精確尋找指定區(qū)域中,指定圖片的位置--尋找符合條件的圖片snapshot<'test.png',1,1,55,55>
--截圖到資源文件夾x,y=findImage<"test.png",0,0,120,480>;--在〔0,0到〔120,480尋找剛剛截圖的圖片ifx~=-1andy~=-1then
--如果在指定區(qū)域找到某圖片符合條件
toast<x..y>;
--顯示坐標(biāo)else
--如果找不到符合條件的圖片
toast<'沒有找到圖片!'>;
end注意事項:此函數(shù)推薦與snapshot截圖函數(shù)配合使用,成功率較高。匹配精度建議每次加減1000000,此參數(shù)值越低匹配精度越高默認(rèn)圖片路徑為/var/mobile/Media/TouchSprite/res〔參數(shù)中無需填寫完整路徑,自建目錄請?zhí)顚懴鄬β窂?。若該函?shù)找圖不理想可使用findimageinregionfuzzy模糊區(qū)域找圖,幾種找圖方式可配合使用。函數(shù):snapshot截圖函數(shù)名稱:截圖函數(shù)功能:截取屏幕中指定區(qū)域的圖像并生成指定格式的圖片文件函數(shù)方法snapshot<picname,x1,y1,x2,y2,quality>;返回值:無參數(shù)
類型
說明picname
string
截圖保存的文件名x1
number
找色區(qū)域左上角頂點屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點屏幕縱坐標(biāo)quality
number
僅支持iOS,當(dāng)截圖格式選為jpg時,可用此參數(shù)控制圖片質(zhì)量,此參數(shù)值為大于0且小于等于1的值腳本實例:iOS示例snapshot<"test.png",0,0,639,1135>;--以test命名進(jìn)行截圖--全屏截圖〔iPhone5,5S,并以當(dāng)前日期為文件名保存current_time=os.date<"%Y-%m-%d",os.time<>>;snapshot<current_time..".png",0,0,639,1135>;--以時間戳命名進(jìn)行截圖snapshot<current_time..".jpg",0,0,639,1135,0.5>;--使用jpg格式截圖,并設(shè)置圖片質(zhì)量為0.5Android示例--全屏截圖〔以小米4為例,并以當(dāng)前日期為文件名保存current_time=os.date<"%Y-%m-%d",os.time<>>;--以時間戳命名進(jìn)行截圖w,h=getScreenSize<>;--右下角頂點坐標(biāo)最大為<寬度最大值-1,高度最大值-1>snapshot<current_time..".png",0,0,w-1,h-1>;注意事項:Android系統(tǒng)保存圖片只支持png格式,不可以設(shè)置質(zhì)量;iOS系統(tǒng)保存圖片的格式可為bmp,jpg,png,因為png是iOS中最常見的格式,所以推薦選擇png。截圖時,如使用全屏截圖,右下角頂點坐標(biāo)最大為<<寬度最大值-1,高度最大值-1>,否則iOS系統(tǒng)會出現(xiàn)越界錯誤,安卓系統(tǒng)截出的圖會是純白色的。默認(rèn)圖片路徑請使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024秋七年級數(shù)學(xué)上冊 第二章 有理數(shù)2.2數(shù)軸 2在數(shù)軸上比較數(shù)的大小說課稿(新版)華東師大版
- 2023九年級數(shù)學(xué)下冊 第二十八章 銳角三角函數(shù)28.2 解直角三角形及其應(yīng)用28.2.2 應(yīng)用舉例第2課時 方向角和坡角問題說課稿 (新版)新人教版
- Module 7 Unit 2 There are twelve boys on the bike(說課稿)-2024-2025學(xué)年外研版(三起)英語 四年級上冊
- 16赤壁賦說課稿
- 4《說說我們的學(xué)?!罚ㄕf課稿)- 2004-2025學(xué)年統(tǒng)編版道德與法治三年級上冊001
- 2025銷售居間合同勞動合同
- Unit4《Bobbys House》lesson6(說課稿)-2024-2025學(xué)年北師大版(三起)英語四年級上冊
- 10在牛肚子里旅行 說課稿-2024-2025學(xué)年三年級上冊語文統(tǒng)編版
- 16新年的禮物 (說課稿)統(tǒng)編版道德與法治一年級上冊
- 2024年九年級語文上冊 第五單元 第9課《劉姥姥進(jìn)賈府》說課稿 北師大版
- 卓有成效的管理者讀后感3000字
- 七年級下冊-備戰(zhàn)2024年中考?xì)v史總復(fù)習(xí)核心考點與重難點練習(xí)(統(tǒng)部編版)
- 北師大版小學(xué)六年級數(shù)學(xué)下冊同步教案 (表格式全冊)
- 巖土工程勘察服務(wù)投標(biāo)方案(技術(shù)方案)
- 實驗室儀器設(shè)備驗收單
- 新修訂藥品GMP中藥飲片附錄解讀課件
- 蒙特利爾認(rèn)知評估量表北京版
- 領(lǐng)導(dǎo)干部個人有關(guān)事項報告表(模板)
- 危險化學(xué)品目錄2023
- GB/T 7631.18-2017潤滑劑、工業(yè)用油和有關(guān)產(chǎn)品(L類)的分類第18部分:Y組(其他應(yīng)用)
- GB/T 14258-2003信息技術(shù)自動識別與數(shù)據(jù)采集技術(shù)條碼符號印制質(zhì)量的檢驗
評論
0/150
提交評論