版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
./DecryptGUI@miniknife2017-09-2718:51字?jǐn)?shù)119624閱讀480798觸動(dòng)精靈腳本開(kāi)發(fā)手冊(cè)開(kāi)發(fā)手冊(cè)觸動(dòng)精靈Windows平臺(tái)按Ctrl+F打開(kāi)快捷搜索Mac平臺(tái)按command+F打開(kāi)快捷搜索※右側(cè)文本列表可以找到全部手冊(cè)目錄觸動(dòng)精靈腳本開(kāi)發(fā)手冊(cè)目錄前言學(xué)習(xí)前的準(zhǔn)備越獄及root常識(shí)Lua基礎(chǔ)簡(jiǎn)明教程腳本開(kāi)發(fā)取色技巧小白學(xué)觸動(dòng)零基礎(chǔ)視頻教程觸動(dòng)精靈開(kāi)發(fā)者指南觸動(dòng)產(chǎn)品功能對(duì)比如何查看更多文檔腳本開(kāi)發(fā)相關(guān)工具觸動(dòng)精靈iOS觸動(dòng)精靈Android腳本編輯器:TouchSpriteStudio抓色器:TSColorPicker已兼容的模擬器點(diǎn)擊觸摸函數(shù):touchDown、touchUp、touchMove觸摸點(diǎn)擊、滑動(dòng)函數(shù):catchTouchPoint獲取用戶點(diǎn)擊坐標(biāo)圖色類(lèi)及屏幕相關(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獲取屏幕某點(diǎn)顏色值函數(shù):findColorInRegionFuzzy區(qū)域模糊找色函數(shù):findImageInRegionFuzzy區(qū)域模糊找圖函數(shù):findMultiColorInRegionFuzzy區(qū)域多點(diǎn)找色函數(shù):findMultiColorInRegionFuzzyExt高級(jí)區(qū)域多點(diǎn)找色函數(shù):findImage高級(jí)區(qū)域找圖〔僅支持iOS函數(shù):snapshot截圖函數(shù):imageOperMerge圖片合并〔僅支持iOS開(kāi)發(fā)輔助類(lèi)函數(shù):initLog、wLog、closeLog日志函數(shù)函數(shù):sysLog系統(tǒng)日志函數(shù):nLog遠(yuǎn)程日志腳本控制函數(shù):mSleep延時(shí)函數(shù):lua_exit退出腳本函數(shù):lua_restart重載腳本函數(shù):luaExitIfCall來(lái)電暫停函數(shù):checkScriptAuth腳本授權(quán)系統(tǒng)相關(guān)函數(shù):dialog提示框函數(shù):toast提示函數(shù):dialogRet帶按鈕的對(duì)話框函數(shù):dialogInput參數(shù)對(duì)話框〔僅支持iOS函數(shù):getNetTime獲取網(wǎng)絡(luò)時(shí)間函數(shù):addContactToAB添加聯(lián)系人函數(shù):removeAllContactsFromAB清空通訊錄UTF-8編碼模塊說(shuō)明函數(shù):utf8.char整數(shù)序列轉(zhuǎn)換字符串函數(shù):utf8.codes獲取字符編碼函數(shù):utf8.codepoint獲取指定位置字符編碼函數(shù):utf8.len統(tǒng)計(jì)字符個(gè)數(shù)函數(shù):utf8.offset獲取字符位置文字輸入及按鍵模擬函數(shù):inputText輸入字符串函數(shù):switchTSInputMethod切換到觸動(dòng)/幫你玩輸入法〔僅支持Android函數(shù):getInPutMethod獲取當(dāng)前輸入法包名〔僅支持Android函數(shù):pressHomeKey模擬主屏幕按鍵函數(shù):doublePressHomeKey雙擊HOME鍵〔僅支持iOS函數(shù):keyDown、keyUp模擬鍵盤(pán)〔僅支持iOS命令:安卓模擬物理按鍵〔僅支持Android應(yīng)用相關(guān)函數(shù):runApp、closeApp運(yùn)行、關(guān)閉應(yīng)用函數(shù):isFrontApp判斷前臺(tái)應(yīng)用函數(shù):frontAppBid獲取前臺(tái)應(yīng)用函數(shù):appBundlePath獲取應(yīng)用安裝路徑函數(shù):appDataPath獲取應(yīng)用數(shù)據(jù)路徑〔僅支持iOS函數(shù):appIsRunning檢測(cè)應(yīng)用是否運(yùn)行函數(shù):openURL打開(kāi)網(wǎng)絡(luò)地址函數(shù):ipaInstall、ipaUninstall安裝、卸載應(yīng)用〔僅支持iOS函數(shù):install,uninstallApp安裝、卸載應(yīng)用程序〔僅支持Android函數(shù):getInstalledApps獲取應(yīng)用列表函數(shù):isInstalledApk查詢(xún)應(yīng)用程序是否安裝〔僅支持Android函數(shù):changeSpeed變速器〔僅支持iOS函數(shù):cleanApp清理應(yīng)用數(shù)據(jù)〔僅支持Android系統(tǒng)信息類(lèi)函數(shù):getDeviceType獲取設(shè)備類(lèi)型函數(shù):getDeviceID獲取觸動(dòng)精靈設(shè)備號(hào)函數(shù):getMemoryInfo獲取設(shè)備內(nèi)存信息函數(shù):getTSVer、getOSVer獲取引擎版本號(hào)、獲取系統(tǒng)版本號(hào)函數(shù):getOSType獲取設(shè)備系統(tǒng)函數(shù):batteryStatus檢測(cè)電池狀態(tài)、電量函數(shù):getProcess獲取設(shè)備進(jìn)程列表函數(shù):getDeviceAlias獲取設(shè)備別名〔僅支持iOS企業(yè)版函數(shù):getDeviceName獲取設(shè)備名稱(chēng)函數(shù):setDeviceName設(shè)置設(shè)備名稱(chēng)〔僅支持iOS函數(shù):getIMEI獲取設(shè)備IMEI<僅支持Android>函數(shù):getNetworkIP獲取網(wǎng)絡(luò)IP<僅支持Android>函數(shù):getDeviceBrand獲取設(shè)備品牌<僅支持Android>函數(shù):getDeviceModel獲取設(shè)備型號(hào)<僅支持Android>函數(shù):getCPUType獲取CPU型號(hào)<僅支持Android>函數(shù):getUUID獲取UUID<僅支持Android>函數(shù):getSDCardPath獲取SD卡路徑<僅支持Android>函數(shù):getDPI獲取屏幕DPI和像素密度<僅支持Android>系統(tǒng)控制函數(shù):setRotationLockEnable鎖定設(shè)備方向〔僅支持iOS函數(shù):setWifiEnable無(wú)線開(kāi)關(guān)函數(shù):setBTEnable藍(lán)牙開(kāi)關(guān)函數(shù):setAirplaneMode飛行模式開(kāi)關(guān)函數(shù):getVPNStatus獲取VPN狀態(tài)函數(shù):setVPNEnableVPN開(kāi)關(guān)〔僅支持iOS函數(shù):setCellularDataEnable蜂窩網(wǎng)絡(luò)開(kāi)關(guān)〔僅支持iOS函數(shù):setAssistiveTouchEnable小圓點(diǎn)開(kāi)關(guān)〔僅支持iOS函數(shù):setReduceMotionEnable減弱動(dòng)效開(kāi)關(guān)〔僅支持iOS函數(shù):getBacklightLevel獲取屏幕亮度函數(shù):setBacklightLevel設(shè)置屏幕亮度函數(shù):setVolumeLevel設(shè)置設(shè)備音量函數(shù):vibrator手機(jī)振動(dòng)函數(shù):playAudio播放音頻函數(shù):stopAudio停止播放〔僅Android函數(shù):lockDevice鎖定設(shè)備函數(shù):deviceIsLock設(shè)備鎖定狀態(tài)函數(shù):unlockDevice解鎖設(shè)備函數(shù):setAutoLockTime設(shè)置鎖屏?xí)r間函數(shù):resetIDLETimer重置鎖屏計(jì)時(shí)〔僅支持iOS函數(shù):shakeDevice搖一搖〔僅支持iOS函數(shù):setScreenResolution修改分辨率〔僅支持iOS函數(shù):clearKeyChain清除鑰匙串〔僅支持iOS函數(shù):fakeGPS偽裝位置〔僅支持iOS函數(shù):saveImageToAlbum圖片存入相冊(cè)函數(shù):saveVideoToAlbum視頻存入相冊(cè)〔僅支持iOS函數(shù):writePasteboard、readPasteboard讀寫(xiě)剪貼板回調(diào)函數(shù)函數(shù):beforeUserExit終止之前運(yùn)行文字識(shí)別函數(shù):ocrText本地光學(xué)字符識(shí)別函數(shù):addTSOcrDict、addTSOcrDictEx、tsOcrText、tsFindText觸動(dòng)點(diǎn)陣識(shí)別函數(shù):addDmOcrDict、dmOcrText、dmFindText打碼點(diǎn)陣識(shí)別觸動(dòng)相關(guān)函數(shù):deviceIsAuth獲取觸動(dòng)精靈授權(quán)狀態(tài)〔僅支持iOS函數(shù):getRunningAccess獲取當(dāng)前腳本運(yùn)行權(quán)限〔僅支持Android函數(shù):userPath獲取客戶端文件路徑函數(shù):whoAmI檢測(cè)觸動(dòng)產(chǎn)品類(lèi)型函數(shù):showFloatButton顯示、隱藏懸浮條命令:強(qiáng)制重啟觸動(dòng)服務(wù)Thread協(xié)程〔僅支持iOS函數(shù):thread.create創(chuàng)建協(xié)程函數(shù):thread.createSubThread創(chuàng)建子協(xié)程函數(shù):thread.stop停止協(xié)程隊(duì)列函數(shù):thread.wait阻塞等待當(dāng)前協(xié)程完成函數(shù):thread.setTimeout設(shè)置協(xié)程超時(shí)時(shí)間函數(shù):thread.clearTimeout清除協(xié)程超時(shí)時(shí)間函數(shù):thread.waitAllThreadExit協(xié)程阻塞等待浮動(dòng)窗口函數(shù):fwShowWnd顯示浮動(dòng)窗口函數(shù):fwShowTextView顯示文字視圖函數(shù):fwShowImageView顯示圖形視圖函數(shù):fwCloseView關(guān)閉視圖函數(shù):fwCloseWnd關(guān)閉窗口函數(shù):fwGetWndPos獲取窗口位置函數(shù):fwShowButton顯示一個(gè)按鈕函數(shù):fwGetPressedButton獲取按鈕點(diǎn)擊事件完整實(shí)例腳本UIshowUI什么是json調(diào)用示例用json創(chuàng)建界面全局屬性控件通用屬性界面控件控件:Label標(biāo)簽控件:RadioGroup單選框控件:Edit文本編輯框控件:CheckBoxGroup多選框控件:ComboBox下拉框控件:Image圖片默認(rèn)樣式指定控件尺寸與位置返回值自定義樣式實(shí)例代碼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ù)完整例子為觸動(dòng)增加無(wú)限可能,Lua擴(kuò)展庫(kù)觸動(dòng)精靈TSLib函數(shù)擴(kuò)展庫(kù)云打碼擴(kuò)展庫(kù)觸動(dòng)精靈云打碼使用方法函數(shù):ocr.cloudOcrText、ocr.cloudOcrReportError、ocr.version簡(jiǎn)易SMTP郵件發(fā)送庫(kù)函數(shù):mail.send觸動(dòng)精靈中"os.execute"應(yīng)用respring注銷(xiāo)poweroff關(guān)機(jī)reboot重啟clearCache清空緩存delFile刪除文件unzip解壓movefile移動(dòng)文件copyfile復(fù)制文件newfolder創(chuàng)建文件夾觸動(dòng)精靈中"io庫(kù)"應(yīng)用readFile將指定文件中的內(nèi)容按行讀取getList遍歷文件findFile查找文件file_exists檢測(cè)指定文件是否存在在觸動(dòng)精靈中使用"LuaSocket"網(wǎng)絡(luò)庫(kù)如何安裝httpGet請(qǐng)求httpPost請(qǐng)求掛載代理以socket的方式訪問(wèn)smtp方法發(fā)送mail實(shí)現(xiàn)獲取網(wǎng)絡(luò)時(shí)間統(tǒng)計(jì)毫秒精度的時(shí)間生成隨機(jī)數(shù)觸動(dòng)精靈ts.so擴(kuò)展庫(kù)觸動(dòng)精靈蘇澤擴(kuò)展庫(kù)JSON模塊FTP模塊設(shè)備信息模塊字符串處理模塊〔僅支持iOSHTTP模塊PLIST文件操作〔僅支持iOSPOS模塊附錄iOS設(shè)備分辨率一覽表Luamath庫(kù)已知與觸動(dòng)精靈/幫你玩/小精靈/企業(yè)版iOS沖突的插件列表約定的按鍵編碼電話功能按鍵控制類(lèi)按鍵基本類(lèi)按鍵安卓手機(jī)如何開(kāi)啟系統(tǒng)懸浮窗權(quán)限設(shè)備SSH連接工具相關(guān)工具運(yùn)行庫(kù)OCR〔光學(xué)字符識(shí)別相關(guān)LuaSQLiteiOS系統(tǒng)設(shè)置參數(shù)對(duì)照表按鍵碼表[字母]按鍵碼表[數(shù)字]按鍵碼表[其他]按鍵碼表[更多請(qǐng)自行嘗試]前言
觸動(dòng)精靈是一款模擬手機(jī)觸摸、按鍵操作的軟件,通過(guò)制作腳本,可以讓觸動(dòng)精靈代替雙手,自動(dòng)執(zhí)行一系列觸摸、按鍵操作。觸動(dòng)精靈簡(jiǎn)單、易用,不需要掌握任何編程知識(shí)就可以錄制出功能強(qiáng)大的腳本;還可以使用編程知識(shí),編寫(xiě)出功能更為復(fù)雜,交互更為靈活的腳本;只要能夠在手機(jī)上完成的人為操作,觸動(dòng)精靈都可以代替完成,不僅省力,而且高效。
觸動(dòng)精靈采用Lua腳本語(yǔ)言作為底層語(yǔ)言,支持Lua5.2.3版本的所有語(yǔ)法與基本函數(shù),并在其的基礎(chǔ)上添加了一些擴(kuò)展函數(shù),用于取色、找色、找圖、發(fā)送觸摸事件等高級(jí)功能的實(shí)現(xiàn)。用戶在閱讀本函數(shù)說(shuō)明前,請(qǐng)參考Lua的官方手冊(cè)以及相關(guān)資料,學(xué)習(xí)以下基本語(yǔ)法:
-注釋
-變量與類(lèi)型
-運(yùn)算符
-條件、循環(huán)控制
-函數(shù)定義
-庫(kù)函數(shù)
-……
本說(shuō)明僅供初等文化水平以上的、了解計(jì)算機(jī)編程基本原理的個(gè)體學(xué)習(xí)與參考,并不適用于零基礎(chǔ)的編程入門(mén)者學(xué)習(xí)編程基本知識(shí)。嚴(yán)禁用于商業(yè)以及非法目的,嚴(yán)禁轉(zhuǎn)載、抄襲、未經(jīng)許可地引用。為了便于解釋和描述,本說(shuō)明中采用了一些非專(zhuān)業(yè)的描述與形容方法〔如:number,敬請(qǐng)理解。因編寫(xiě)校對(duì)倉(cāng)促,如有錯(cuò)誤歡迎及時(shí)指正,本文中的示例僅供函數(shù)參考,不要直接用于腳本中。重要提示:Lua官方手冊(cè):/manual/5.2/Lua中文開(kāi)發(fā)手冊(cè):/Lua基礎(chǔ)簡(jiǎn)明教程:/lisaisacat/note/636399觸動(dòng)精靈的腳本開(kāi)發(fā)、存儲(chǔ)過(guò)程必須使用UTF-8文本編碼,如果您出現(xiàn)腳本中文無(wú)法正常顯示與處理,請(qǐng)?jiān)谀褂玫木庉嬈骰騃DE中設(shè)置文本編碼為UTF-8,謝謝。學(xué)習(xí)前的準(zhǔn)備越獄及root常識(shí)在學(xué)習(xí)腳本開(kāi)發(fā)之前,首先要具備一些關(guān)于iOS越獄和安卓root的知識(shí),以及觸動(dòng)精靈的常用信息文檔鏈接:/lisaisacat/note/324664看了上面的文檔,你可以具備以下知識(shí):什么樣的手機(jī)適合用來(lái)做腳本開(kāi)發(fā)拿到一臺(tái)越獄手機(jī)之后應(yīng)該做什么才能避免白蘋(píng)果和報(bào)錯(cuò)Cydia不見(jiàn)了或者已安裝界面空白該怎么辦為什么安裝插件總是報(bào)錯(cuò)呢Lua基礎(chǔ)簡(jiǎn)明教程首先你需要了解Lua這門(mén)語(yǔ)言的一些基礎(chǔ)知識(shí),什么是循環(huán),什么是函數(shù),布爾型和數(shù)值型分別是什么意思,才有可能看得懂下面的教程和手冊(cè)。文檔地址:/lisaisacat/note/636399腳本開(kāi)發(fā)取色技巧新手在學(xué)習(xí)使用觸動(dòng)精靈開(kāi)發(fā)腳本的時(shí)候,總會(huì)進(jìn)入一些誤區(qū),或者會(huì)有一些迷惑的點(diǎn),覺(jué)得無(wú)從下手,本文總結(jié)了一些自己在學(xué)習(xí)過(guò)程中遇到的問(wèn)題和經(jīng)驗(yàn)技巧,歡迎大家一起交流分享。文檔鏈接:/lisaisacat/note/508345看了上面的文檔,你可以具備以下知識(shí):透明背景圖、動(dòng)圖、帶動(dòng)畫(huà)的界面應(yīng)該怎么取色找色和找圖哪個(gè)更好用函數(shù)封裝是什么腳本報(bào)錯(cuò)了怎么辦小白學(xué)觸動(dòng)零基礎(chǔ)視頻教程如果你沒(méi)有任何編程基礎(chǔ),可以先看一下零基礎(chǔ)教學(xué)視頻:/lisaisacat/note/585252看了上面的文檔,你可以具備以下知識(shí):deb插件安裝方法平刷插件CydiaEraserSSH命令工具putty觸動(dòng)精靈的安裝使用及常識(shí)抓色器和編輯器的使用及常識(shí)同樣的腳本為什么有的手機(jī)運(yùn)行異常showUI返回值的調(diào)用showUI應(yīng)該怎么寫(xiě)才簡(jiǎn)潔好用大漠字庫(kù)工具的用法觸動(dòng)精靈開(kāi)發(fā)者指南由于觸動(dòng)精靈在線文檔數(shù)量較多,很多人不知道如何查詢(xún),現(xiàn)建立此文檔做為索引,其中會(huì)補(bǔ)充一些軟件使用的常用信息。觸動(dòng)精靈旗下目前有四款軟件:觸動(dòng)精靈〔iOS/Android、幫你玩商城〔iOS/Android、小精靈〔iOS/Android、企業(yè)版〔iOS/Android開(kāi)發(fā)中。觸動(dòng)精靈適合開(kāi)發(fā)者和有中控開(kāi)發(fā)能力的工作室使用幫你玩腳本商城適合開(kāi)發(fā)玩家腳本的開(kāi)發(fā)者和普通腳本用戶使用小精靈適合有圖標(biāo)和包名自定義需求的開(kāi)發(fā)者和工作室使用企業(yè)版適合有批量控制設(shè)備需求的工作室使用文檔地址:/miniknife/note/509515觸動(dòng)產(chǎn)品功能對(duì)比產(chǎn)品名稱(chēng)
自定義圖標(biāo)
錄制
調(diào)試
運(yùn)行源碼
授權(quán)
批量控制
支持平臺(tái)
開(kāi)發(fā)者平臺(tái)觸動(dòng)精靈iOS
×
√
√
√
30元/臺(tái)/年
購(gòu)買(mǎi)API自行開(kāi)發(fā)
iOS/Android
/site/index觸動(dòng)精靈安卓
×
√
√
√
免費(fèi)
購(gòu)買(mǎi)API自行開(kāi)發(fā)
iOS/Android
/site/index觸動(dòng)小精靈
√
×
×
×
11元/臺(tái)/月
購(gòu)買(mǎi)API自行開(kāi)發(fā)
iOS/Android
/幫你玩商城
×
×
×
×
免費(fèi)
×
iOS/Android
/p4u/site/index觸動(dòng)企業(yè)版
×
×
×
√
38元/臺(tái)/年
免費(fèi)
iOS/Android
/如何查看更多文檔在文檔右側(cè)欄頂部點(diǎn)擊文檔分類(lèi)菜單欄按鈕,即可查看觸動(dòng)精靈所有在線文檔。此處輸入圖片的描述腳本開(kāi)發(fā)相關(guān)工具
工欲善其事,必先利其器,在學(xué)習(xí)觸動(dòng)精靈腳本編寫(xiě)前我們需要下載安裝一些輔助工具來(lái)完成腳本編寫(xiě),包含但不限于以下工具:觸動(dòng)精靈iOS使用教程:/miniknife/note/307627官方源地址:測(cè)試源地址:腳本存放路徑:/var/mobile/Media/TouchSprite/lua默認(rèn)資源路徑:/var/mobile/Media/TouchSprite/res腳本日志路徑:/var/mobile/Media/TouchSprite/log配置文件路徑:/var/mobile/Media/TouchSprite/config觸動(dòng)精靈Android使用教程:/miniknife/note/443534下載地址:/touchsprite腳本存放路徑:/sdcard/TouchSprite/res/lua默認(rèn)資源路徑:/sdcard/TouchSprite/res/res腳本日志路徑:/sdcard/TouchSprite/res/log配置文件路徑:/sdcard/TouchSprite/res/config※安卓不同機(jī)型路徑有差別,請(qǐng)用userPath函數(shù)獲取路徑注意事項(xiàng)有些函數(shù)不支持低版本觸動(dòng)精靈,請(qǐng)仔細(xì)閱讀函數(shù)說(shuō)明并盡量保持觸動(dòng)精靈客戶端為最新版。測(cè)試版為不穩(wěn)定版本,為避免不必要的麻煩,請(qǐng)勿大規(guī)模安裝。測(cè)試版和正式版的BundleID不同,不能跨源覆蓋安裝或直接升級(jí),請(qǐng)卸載之后再安裝另一個(gè)源的版本。腳本編輯器:TouchSpriteStudio支持函數(shù)自動(dòng)補(bǔ)全、函數(shù)提示、關(guān)鍵字高亮、文件傳送、遠(yuǎn)程運(yùn)行、自動(dòng)縮進(jìn)等常用功能,已內(nèi)置所有至最新2.3.6版本觸動(dòng)精靈擴(kuò)展函數(shù),推薦使用。下載地址:/tools使用手冊(cè):/miniknife/note/123055視頻教程:/lisaisacat/note/324664#編輯器與抓色器的使用抓色器:TSColorPicker一個(gè)趁手的抓色器可以讓你的腳本開(kāi)發(fā)過(guò)程變的輕松愉快,在此強(qiáng)烈推薦觸動(dòng)抓色器,快捷抓點(diǎn)、一鍵生成代碼、遠(yuǎn)程抓屏,讓你如虎添翼。具體使用方法請(qǐng)閱讀壓縮包內(nèi)附帶的說(shuō)明〔遠(yuǎn)程抓屏功能需使用觸動(dòng)精靈iOSv2.1.5以上版本。下載地址:/tools使用手冊(cè):/havonz/note/94681視頻教程:/lisaisacat/note/324664#編輯器與抓色器的使用已兼容的模擬器猩猩模擬器、夜神模擬器、海馬玩模擬器、逍遙模擬器、51模擬器、雷電模擬器模擬器使用教程:/miniknife/note/443336從系統(tǒng)兼容和資源占用角度考慮,推薦使用雷電模擬器、夜神模擬器。點(diǎn)擊觸摸函數(shù):touchDown、touchUp、touchMove觸摸點(diǎn)擊、滑動(dòng)函數(shù)名稱(chēng):觸摸按下、抬起、移動(dòng)函數(shù)功能:通過(guò)按下、抬起、移動(dòng)動(dòng)作發(fā)送觸摸事件。函數(shù)方法touchDown<index,x,y>;touchMove<index,x,y>;touchUp<index,x,y>;返回值:無(wú)參數(shù)
類(lèi)型
說(shuō)明index
number
手指序號(hào)〔可省略x
number
屏幕橫坐標(biāo)y
number
屏幕縱坐標(biāo)腳本實(shí)例:快速劃動(dòng)touchDown<150,550>;
--在坐標(biāo)<150,550>按下mSleep<30>;touchMove<150,600>;
--移動(dòng)到坐標(biāo)<150,600>,注意一次滑動(dòng)的坐標(biāo)間隔不要太大,不宜超過(guò)50像素mSleep<30>;touchUp<150,600>;
--在坐標(biāo)<150,600>抬起連續(xù)劃動(dòng)touchDown<150,550>;
--在坐標(biāo)<150,550>按下fori=0,400,10do
--使用for循環(huán)從起始點(diǎn)連續(xù)橫向移動(dòng)到終止點(diǎn)
touchMove<150+i,550>;
mSleep<10>;
--延遲endtouchUp<150+200,550>;
--在坐標(biāo)<350,550>抬起多點(diǎn)觸控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)使兩只手指同時(shí)分離
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封裝一個(gè)點(diǎn)擊函數(shù)functionclick<x,y>
touchDown<x,y>
mSleep<30>
touchUp<x,y>endclick<100,200>--點(diǎn)擊坐標(biāo)100,200位置方形漸開(kāi)線init<1>mSleep<1000>localx=1010--起始坐標(biāo)xlocaly=698
--起始坐標(biāo)ylocalv=30
--兩點(diǎn)間距離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>圓形漸開(kāi)線init<1>mSleep<1000>localx0=1010--起始坐標(biāo)xlocaly0=698
--起始坐標(biāo)ylocalrr=20--設(shè)置遞增半徑locall=10--設(shè)置點(diǎn)間距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>安卓點(diǎn)擊滑動(dòng)失效處理方法在部分安卓應(yīng)用程序中的HTML5頁(yè)面中,出現(xiàn)腳本能夠點(diǎn)擊,但點(diǎn)擊沒(méi)有后續(xù)反應(yīng)的問(wèn)題。此問(wèn)題目前可以通過(guò)以下寫(xiě)法來(lái)解決:os.execute<"inputmousetapxy">,其中xy為坐標(biāo)值os.execute<"inputmouseswipex1y1x2y2">--滑動(dòng),x1,y1為滑動(dòng)初始坐標(biāo),x2,y2為滑動(dòng)結(jié)束坐標(biāo)如果以上命令還是不生效可以用下面的API方法代替mouse進(jìn)行嘗試:keyboardjoysticktouchnavigationtouchpadtrackballstylusdpadtouchscreengamepad舉例:os.execute<"inputkeyboardtap100100">注意事項(xiàng):需要注意的是在使用touchDown、touchMove、touchUp函數(shù)時(shí),中間一定要插入一定的延時(shí),建議大于20毫秒,否則可能會(huì)出現(xiàn)點(diǎn)擊無(wú)效等異常情況。使用滑動(dòng)函數(shù)時(shí),新手常犯的錯(cuò)誤就是兩點(diǎn)之間滑動(dòng)距離過(guò)大,請(qǐng)注意touchDown、touchMove的坐標(biāo)間隔不宜超過(guò)50像素。非多點(diǎn)觸控可省略手指id新手使用點(diǎn)擊、隨機(jī)點(diǎn)擊、直線或角度滑動(dòng)等相關(guān)函數(shù)請(qǐng)參考函數(shù)擴(kuò)展庫(kù)名詞解析:手指序號(hào),用于多點(diǎn)觸控的支持。標(biāo)記多只手指,來(lái)分別控制它們的移動(dòng)。屏幕坐標(biāo),橫坐標(biāo)為x,縱坐標(biāo)為y,單位為像素。例如,iPhone4與iPhone4S的屏幕分辨率為640*960,則其最大橫坐標(biāo)為640,最大縱坐標(biāo)為960。for循環(huán)是Lua基本語(yǔ)法,屬于循環(huán)控制。函數(shù):catchTouchPoint獲取用戶點(diǎn)擊坐標(biāo)函數(shù)名稱(chēng):獲取用戶點(diǎn)擊坐標(biāo)函數(shù)功能:調(diào)用該函數(shù)后,觸動(dòng)精靈將等待用戶完成一次或多次屏幕點(diǎn)擊,并返回點(diǎn)擊的坐標(biāo)。函數(shù)方法x,y=catchTouchPoint<>;返回值:numberx,yret=catchTouchPoint<touchCount>;返回值:table類(lèi)型ret返回值
類(lèi)型
說(shuō)明x
number
用戶點(diǎn)擊屏幕的橫坐標(biāo)y
number
用戶點(diǎn)擊屏幕的縱坐標(biāo)ret
table
當(dāng)touchCound參數(shù)有效時(shí),將返回一個(gè)包含所有點(diǎn)擊坐標(biāo)的table參數(shù)
類(lèi)型
說(shuō)明touchCount
number
所需獲取的點(diǎn)/坐標(biāo)個(gè)數(shù)〔需引擎版本iOSv2.2.4,Androidv1.1.9以上支持腳本實(shí)例:dialog<"一秒后接收用戶一次點(diǎn)擊",0>;mSleep<1000>;x,y=catchTouchPoint<>;dialog<"x:"..x.."y:"..y,0>;--獲取多個(gè)點(diǎn)擊坐標(biāo)dialog<"一秒后接收用戶三次點(diǎn)擊",0>;mSleep<1000>;localret=catchTouchPoint<3>;fori=1,#retdo
dialog<"第"..i.."次點(diǎn)擊的位置:"..i..",x="..ret[i].x..",y="..ret[i].y>;end注意事項(xiàng):部分安卓模擬器不支持該函數(shù)。此函數(shù)將阻止腳本繼續(xù)運(yùn)行,一直等待用戶完成屏幕點(diǎn)擊。此函數(shù)獲取到的坐標(biāo)為豎屏坐標(biāo),橫屏情況請(qǐng)自行轉(zhuǎn)換。本函數(shù)有較小的延遲,連續(xù)點(diǎn)擊時(shí),請(qǐng)勿點(diǎn)擊過(guò)快。在iOS引擎版本v2.2.4以上中可接收多個(gè)點(diǎn)擊坐標(biāo)并以table形式返回。參數(shù)
類(lèi)型
說(shuō)明touchCount
number
所需獲取的點(diǎn)/坐標(biāo)個(gè)數(shù)〔需引擎版本iOSv2.2.4,Androidv1.1.9以上支持圖色類(lèi)及屏幕相關(guān)函數(shù):init初始化函數(shù)名稱(chēng):初始化函數(shù)功能:腳本運(yùn)行前必須調(diào)用,以設(shè)置設(shè)備方向及坐標(biāo)系。函數(shù)方法init<rotate,bid>;返回值:無(wú)返回值
類(lèi)型
說(shuō)明bid
string
選填,目標(biāo)程序的BundleID,填寫(xiě)"0"時(shí)自動(dòng)使用當(dāng)前運(yùn)行的應(yīng)用Rotate
number
必填,屏幕方向,0-豎屏,1-home鍵在右邊,2-home鍵在左邊安卓設(shè)備根據(jù)機(jī)型初始方向有區(qū)別,需要開(kāi)發(fā)者自行調(diào)試,0-初始方向,1-初始方向向左旋轉(zhuǎn)90°,2-初始方向向右旋轉(zhuǎn)90°init.png-90.8kB腳本實(shí)例:init<0>
--iOS設(shè)備以Home鍵在下方時(shí)的屏幕左上角為坐標(biāo)系原點(diǎn)<0,0>,iOS7以上系統(tǒng)有效;安卓設(shè)備以當(dāng)前屏幕默認(rèn)截圖方向進(jìn)行初始化init<1>;
--iOS設(shè)備以當(dāng)前應(yīng)用Home鍵在右邊初始化,即以Home鍵在右側(cè)時(shí)的橫屏左上角為屏幕坐標(biāo)原點(diǎn)<0,0>;安卓設(shè)備以屏幕默認(rèn)截圖方向向左旋轉(zhuǎn)90°進(jìn)行初始化注意事項(xiàng):安卓系統(tǒng)不同設(shè)備初始的截圖方向有所不同,編寫(xiě)腳本前請(qǐng)用截圖函數(shù)確認(rèn)設(shè)備的默認(rèn)方向。iOS6系統(tǒng)如果填寫(xiě)bid參數(shù)的話,請(qǐng)?jiān)谑褂胷unApp函數(shù)之后再使用此函數(shù),才能獲取到正確的當(dāng)前應(yīng)用坐標(biāo)系。此函數(shù)可在腳本運(yùn)行過(guò)程中多次調(diào)用已改變屏幕方向。如在腳本中未指定屏幕方向,系統(tǒng)將默認(rèn)為豎屏或初始方向。參考資料:BundleID的獲取方法1.在觸動(dòng)精靈客戶端的更多->應(yīng)用ID查詢(xún)中能查看到應(yīng)用程序的BundleID;2.iOS使用iFile、PP助手等軟件可查看應(yīng)用文件夾下的Info.plist,其中的CFBundleIdentifier即為該應(yīng)用的BundleID。3.使用frontAppBid函數(shù),前臺(tái)運(yùn)行要獲取BundleID的應(yīng)用,運(yùn)行此函數(shù)并用diolag、toast、nLog函數(shù)顯示返回值。函數(shù):getDeviceOrient獲取手機(jī)、應(yīng)用屏幕方向〔僅支持iOS函數(shù)名稱(chēng):獲取手機(jī)、應(yīng)用屏幕方向函數(shù)功能:用于獲取當(dāng)前手機(jī)方向和應(yīng)用方向支持版本:引擎版本iOSv2.3.9以上,Android暫不支持函數(shù)方法:orient=getDeviceOrient<>返回值:numberorient.app,orient.dev返回值
類(lèi)型
說(shuō)明orient.app
number
前臺(tái)應(yīng)用方向orient.dev
number
手機(jī)屏幕方向腳本實(shí)例:localorient=getDeviceOrient<>dialog<"屏幕方向:"..orient.dev.."\n應(yīng)用方向:"..orient.app,0>注意事項(xiàng):屏幕方向,0-3,和init方向一致該函數(shù)獲取時(shí)間長(zhǎng),不建議頻繁調(diào)用,否則可能會(huì)影響腳本效率函數(shù):setDeviceOrient設(shè)置屏幕方向〔僅支持iOS函數(shù)名稱(chēng):設(shè)置屏幕方向函數(shù)功能:設(shè)置當(dāng)前腳本運(yùn)行時(shí)的屏幕方向。支持版本:引擎版本iOSv2.3.4以上,Android暫不支持函數(shù)方法setDeviceOrient<numberrotate>;返回值:無(wú)參數(shù)
類(lèi)型
說(shuō)明rotate
number
0-豎屏;1-Home鍵在右邊;2-Home鍵在左邊函數(shù):getScreenSize獲取屏幕分辨率函數(shù)名稱(chēng):獲取屏幕分辨率,取分辨率函數(shù)功能:用于獲取設(shè)備屏幕的分辨率,用來(lái)判斷坐標(biāo)系的使用。函數(shù)方法width,height=getScreenSize<>;返回值:numberwidth,height返回值
類(lèi)型
說(shuō)明width
number
獲取到的屏幕寬度height
number
獲取到的屏幕高度腳本實(shí)例:根據(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注意事項(xiàng):統(tǒng)一為iOS豎屏〔Home鍵在下方時(shí)、安卓初始方向屏幕的寬度和高度。部分安卓設(shè)備存在無(wú)法獲取到屏幕分辨率的問(wèn)題,需要在腳本中判斷如果返回值小于0則指定一個(gè)固定的寬高。函數(shù):setScreenScale坐標(biāo)縮放函數(shù)名稱(chēng):坐標(biāo)縮放函數(shù)功能:用于對(duì)屏幕坐標(biāo)進(jìn)行縮放,可直接影響點(diǎn)擊、取色、找色函數(shù)中的坐標(biāo)參數(shù)。支持版本:引擎版本iOSv2.2.7,Androidv1.2.8以上函數(shù)方法setScreenScale<flag,width,height>;返回值:無(wú)參數(shù)
類(lèi)型
說(shuō)明flag
boolean
true-打開(kāi),false-關(guān)閉width
number
基準(zhǔn)屏幕的寬度height
number
基準(zhǔn)屏幕的高度腳本實(shí)例:setScreenScale<true,750,1334>
--以750,1334分辨率為基準(zhǔn)坐標(biāo)進(jìn)行縮放--[[
當(dāng)此函數(shù)打開(kāi)時(shí),將影響點(diǎn)擊、取色、單點(diǎn)模糊找色函數(shù)
]]setScreenScale<false>--關(guān)閉縮放注意事項(xiàng):當(dāng)此函數(shù)打開(kāi)時(shí),受影響的函數(shù)為點(diǎn)擊和單點(diǎn)找色函數(shù):touchDowntouchUptouchMovegetColorgetColorRGBfindColorInRegionFuzzysnapshot多點(diǎn)找色函數(shù)不受此函數(shù)影響當(dāng)兩個(gè)設(shè)備寬高比相差較大時(shí),此函數(shù)轉(zhuǎn)換后的效果較差函數(shù):keepScreen保持屏幕函數(shù)名稱(chēng):保持屏幕,保持圖像函數(shù)功能:在腳本中保持當(dāng)前屏幕內(nèi)容不變,多次調(diào)用取色、找色、截圖、找圖等函數(shù)時(shí),直接調(diào)用保持的內(nèi)容。該函數(shù)為優(yōu)化類(lèi)函數(shù),能夠?yàn)榇罅康撵o態(tài)圖像處理函數(shù)提供性能優(yōu)化。函數(shù)方法keepScreen<flag>;返回值:無(wú)參數(shù)
類(lèi)型
說(shuō)明flag
boolean
保持開(kāi)關(guān)腳本實(shí)例:遍歷屏幕區(qū)塊keepScreen<true>;
--打開(kāi)保持屏幕,當(dāng)參數(shù)為true時(shí)啟用屏幕保持,運(yùn)行到該函數(shù)時(shí)內(nèi)存中的屏幕圖像保持在這一時(shí)刻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時(shí)關(guān)閉屏幕保持,釋放內(nèi)存中的屏幕圖像,以備下一次繼續(xù)保持。注意事項(xiàng):據(jù)不完全統(tǒng)計(jì),與不使用該函數(shù)相比,使用此函數(shù)會(huì)使普通屏上腳本取色速率提升100倍,高分屏上腳本取色速率提升50倍。在執(zhí)行大量靜態(tài)圖像操作時(shí),請(qǐng)務(wù)必使用該函數(shù)優(yōu)化腳本性能。該函數(shù)一般用于畫(huà)面變動(dòng)節(jié)奏較慢,但需要根據(jù)大量取色、找色來(lái)完成計(jì)算和操作的腳本中,例如"天天愛(ài)消除"、"天天星連萌"這樣的游戲。名詞解析:靜態(tài)圖像處理,指可在某一狀態(tài)下屏幕內(nèi)容保持到內(nèi)存〔不影響顯示,對(duì)其進(jìn)行進(jìn)一步的多次分析。否則,每次使用圖像類(lèi)函數(shù),都將截取一次屏幕內(nèi)容。保持開(kāi)關(guān),邏輯型只有兩種屬性:true為真,false為假。注意事項(xiàng):當(dāng)使用keepScreen<true>;時(shí)啟用屏幕保持,運(yùn)行到該函數(shù)時(shí)內(nèi)存中的屏幕圖像保持在這一時(shí)刻。當(dāng)使用keepScreen<false>;時(shí)關(guān)閉屏幕保持,釋放內(nèi)存中的屏幕圖像,以備下一次繼續(xù)保持。函數(shù):getColor、getColorRGB獲取屏幕某點(diǎn)顏色值函數(shù)名稱(chēng):獲取顏色、獲取顏色RGB、取色函數(shù)功能:獲取某一點(diǎn)的顏色值〔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ù)
類(lèi)型
說(shuō)明x
number
將獲取顏色值的屏幕橫坐標(biāo)y
number
將獲取顏色值的屏幕縱坐標(biāo)返回值
類(lèi)型
說(shuō)明color
number
該點(diǎn)的十進(jìn)制顏色值RGBcolor_r,color_g,color_b
number
該點(diǎn)顏色的RGB值腳本實(shí)例:如果某點(diǎn)符合某顏色則點(diǎn)擊color=getColor<100,100>;
--獲取<100,100>的顏色值,賦值給color變量ifcolor==0xffffffthen
--如果該點(diǎn)的顏色值等于0xffffff
touchDown<100,100>;
--那么點(diǎn)擊該點(diǎn)
mSleep<30>;
touchUp<100,100>;end--亦可寫(xiě)作ifgetColor<100,100>==0xffffffthen
touchDown<100,100>;
mSleep<30>;
touchUp<100,100>;end如果某點(diǎn)的顏色與某顏色相似則點(diǎn)擊r,g,b=getColorRGB<100,100>;
--獲取<100,100>的顏色值,賦值給color變量ifr>200andg<150then
--如果紅色強(qiáng)度大于
200,綠色強(qiáng)度小于150
touchDown<100,100>;
--那么點(diǎn)擊該點(diǎn)
mSleep<30>;
touchUp<100,100>;end封裝一個(gè)單點(diǎn)模糊比色函數(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多點(diǎn)模糊比色在實(shí)際游戲腳本制作中,很多界面單靠1個(gè)點(diǎn)不容易進(jìn)行準(zhǔn)確的判斷,這里封裝一個(gè)配合TABLE使用的多點(diǎn)模糊比色函數(shù)來(lái)實(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即可。實(shí)例中的TABLE格式可使用觸動(dòng)精靈抓色器生成。注意事項(xiàng):getColor與getColorRGB的作用是一樣的,只不過(guò)前者返回單變量,后者返回R,G,B三變量。如直接使用例子中的代碼進(jìn)行測(cè)試,請(qǐng)?jiān)谌看a之前,加入2~3秒延遲;或者使用循環(huán)語(yǔ)句。因?yàn)槟_本開(kāi)始運(yùn)行時(shí),會(huì)出現(xiàn)音量提示遮蓋在前臺(tái),影響獲取顏色。特別注意,getColor函數(shù)獲得的顏色值十六進(jìn)制文本中,實(shí)際順序?yàn)镽GB。新手找色可使用觸動(dòng)精靈函數(shù)擴(kuò)展庫(kù)中的比色和多點(diǎn)比色函數(shù),更加簡(jiǎn)單方便。參考資料如何獲取屏幕上某點(diǎn)的顏色在你想在設(shè)備上截圖,iOS同時(shí)按下電源鍵和Home鍵,安卓為電源鍵和音量鍵-即可進(jìn)行截圖〔此時(shí)屏幕會(huì)閃一下。使用觸動(dòng)精靈抓色器〔/tools可方便的獲取所需坐標(biāo)點(diǎn)的顏色信息,推薦使用。常見(jiàn)顏色表:/other/rgb.htm名詞解析R,G,B值,即代表紅<Red>、綠<Green>、藍(lán)<Blue>三個(gè)通道的顏色強(qiáng)度。整型,指的是可以用十、十六、八進(jìn)制指定的數(shù)據(jù)類(lèi)型。使用十六進(jìn)制符號(hào),必須加上0x。賦值是Lua基本語(yǔ)法,操作符為"="〔一個(gè)等號(hào)。等于是Lua基本語(yǔ)法,屬于條件控制,操作符為"=="〔兩個(gè)等號(hào)。新手常常將等于寫(xiě)作賦值,從而導(dǎo)致編譯出現(xiàn)錯(cuò)誤。函數(shù):findColorInRegionFuzzy區(qū)域模糊找色函數(shù)名稱(chēng):區(qū)域找色、模糊找色、區(qū)域模糊找色函數(shù)功能:在指定區(qū)域中,尋找符合指定顏色的坐標(biāo),支持模糊查找。函數(shù)方法x,y=findColorInRegionFuzzy<color,degree,x1,y1,x2,y2>;返回值:numberx,y參數(shù)
類(lèi)型
說(shuō)明color
number
將要找的十六進(jìn)制顏色值degree
number
尋找精度,范圍:1~100,當(dāng)是100時(shí)為完全匹配x1
number
找色區(qū)域左上角頂點(diǎn)屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點(diǎn)屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點(diǎn)屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點(diǎn)屏幕縱坐標(biāo)返回值
類(lèi)型
說(shuō)明x,y
number
找到的點(diǎn)坐標(biāo),如未找到則返回-1,-1腳本實(shí)例:1.精確尋找指定區(qū)域中,指定顏色的坐標(biāo),并按下--尋找符合條件的點(diǎn)x,y=findColorInRegionFuzzy<0x112233,100,50,50,300,300>;ifx~=-1andy~=-1then
--如果在指定區(qū)域找到某點(diǎn)符合條件
touchDown<x,y>;
--那么單擊該點(diǎn)
mSleep<30>;
touchUp<x,y>;else
--如果找不到符合條件的點(diǎn)
dialog<"未找到符合條件的坐標(biāo)!",0>;end2.模糊查找指定區(qū)域中,盡可能接近指定顏色的點(diǎn),并按下fordeg=100,1,-1do
--使用for循環(huán)不斷降低精確度
x,y=findColorInRegionFuzzy<0xffffff,deg,50,50,300,300>;
ifx~=-1andy~=-1then
--如果在指定區(qū)域找到某點(diǎn)符合條件
nLog<"在模糊度:"..deg.."下找到一個(gè)相似的顏色,坐標(biāo):"..x..":"..y>
touchDown<x,y>;
--那么單擊該點(diǎn)
mSleep<30>
touchUp<x,y>;
break;
--并跳出循環(huán)
endend注意事項(xiàng):未找到則返回<-1,-1>,所以找到時(shí)x,y均不等于-1,~=為不等于操作符,是Lua基本語(yǔ)法,屬于邏輯控制。通過(guò)不斷降低模糊查找精確度的方法在指定區(qū)域查找到的不一定是最接近指定顏色的點(diǎn),該代碼應(yīng)用過(guò)程中,建議使用"保持屏幕"減少性能損耗,參見(jiàn)"保持屏幕"一章。函數(shù):findImageInRegionFuzzy區(qū)域模糊找圖函數(shù)名稱(chēng):區(qū)域找圖、模糊找圖、區(qū)域模糊找圖函數(shù)功能:在指定區(qū)域中,尋找指定的圖案,返回其左上角頂點(diǎn)坐標(biāo),支持模糊查找。支持版本:引擎版本iOSv1.0,Androidv2.1.0以上函數(shù)方法x,y=findImageInRegionFuzzy<picpath,degree,x1,y1,x2,y2,alpha,type>;返回值:x,y參數(shù)
類(lèi)型
說(shuō)明picpath
string
將要尋找的圖片文件名〔<Android僅支持png格式>degree
number
尋找精度,范圍:1~100,當(dāng)是100時(shí)為完全匹配x1
number
找色區(qū)域左上角頂點(diǎn)屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點(diǎn)屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點(diǎn)屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點(diǎn)屏幕縱坐標(biāo)mask
number
忽略的顏色值〔透明色若無(wú)請(qǐng)?zhí)?type
number
找圖類(lèi)型,默認(rèn)不寫(xiě)為RGB找圖,更多請(qǐng)看注意事項(xiàng)返回值
類(lèi)型
說(shuō)明x,y
number
找到的圖片的左上角頂點(diǎn)坐標(biāo),如未找到則返回-1,-1腳本實(shí)例:精確尋找指定區(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注意事項(xiàng):以下找圖幾種type方式:type為空-RGB找圖,適用于靜態(tài)畫(huà)面,找圖速度快,兼容性一般type為1-二值化找圖,適用于所有畫(huà)面,找圖速度慢,兼容性好type為2-二值化找圖,適用于靜態(tài)畫(huà)面,找圖速度快,兼容性好Android僅支持png格式圖片。iOS默認(rèn)圖片路徑為/var/mobile/Media/TouchSprite/res,Android為/mnt/sdcard/TouchSprite/res〔參數(shù)中無(wú)需填寫(xiě)完整路徑,自建目錄請(qǐng)?zhí)顚?xiě)相對(duì)路徑。忽略的顏色值指將要尋找的圖片的背景顏色,即在屏幕畫(huà)面上不匹配尋找對(duì)象的背景顏色。若該函數(shù)找圖不理想可使用findImage高級(jí)區(qū)域找圖,幾種找圖方式可配合使用。參數(shù)type為1需引擎版本iOSv2.3.6-7以上支持,type為2需要引擎版本iOSv2.3.7以上支持。函數(shù):findMultiColorInRegionFuzzy區(qū)域多點(diǎn)找色函數(shù)名稱(chēng):多點(diǎn)找色,區(qū)域多點(diǎn)找色函數(shù)功能:在指定區(qū)域,根據(jù)顏色以及其周邊點(diǎn)的顏色,尋找符合條件的點(diǎn)的坐標(biāo),支持模糊查找。函數(shù)方法x,y=findMultiColorInRegionFuzzy<color,posandcolor,degree,x1,y1,x2,y2>;返回值:x,y參數(shù)
類(lèi)型
說(shuō)明color
number
欲尋找的參照點(diǎn)顏色posandcolor
string
周邊點(diǎn)顏色參數(shù)degree
number
尋找精度,范圍:1~100,當(dāng)是100時(shí)為完全匹配x1
number
找色區(qū)域左上角頂點(diǎn)屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點(diǎn)屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點(diǎn)屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點(diǎn)屏幕縱坐標(biāo)返回值
類(lèi)型
說(shuō)明x,y
number
返回符合條件的參照點(diǎn)的坐標(biāo),如未找到則返回-1,-1進(jìn)階指導(dǎo):當(dāng)我們使用"區(qū)域模糊找色"函數(shù)時(shí),常常會(huì)因?yàn)槠聊簧嫌写罅糠现付伾狞c(diǎn)而找不到需要的坐標(biāo)。該函數(shù)通過(guò)在尋找到一個(gè)符合指定顏色color的坐標(biāo)后,進(jìn)一步確認(rèn)其周邊點(diǎn)坐標(biāo)的方式,來(lái)確定準(zhǔn)確目標(biāo)。例如,現(xiàn)在我們?cè)趫D像上找到了我們需要的一個(gè)按鈕,這個(gè)按鈕的圖案是不變的,但是它的整體位置卻會(huì)在整個(gè)屏幕上變化,現(xiàn)在我們想要在腳本運(yùn)行時(shí)得到其坐標(biāo)。我們首先找到一個(gè)點(diǎn):這個(gè)點(diǎn)的顏色為0x181F85,坐標(biāo)為<268,802>。記錄下來(lái),接著找這個(gè)按鈕上的另外一個(gè)點(diǎn):這個(gè)點(diǎn)的顏色為0x00BBFE,坐標(biāo)為<297,803>,相對(duì)于第一個(gè)點(diǎn)的坐標(biāo)為<29,1>。記錄下來(lái),接著找這個(gè)按鈕上的第三個(gè)點(diǎn)和第四個(gè)點(diǎn)。第三個(gè)點(diǎn)的顏色為0x0B6BBE,坐標(biāo)為<371,798>,相對(duì)于第一個(gè)點(diǎn)的坐標(biāo)為<103,-4>。第四個(gè)點(diǎn)的顏色為0x150972,坐標(biāo)為<333,811>,相對(duì)于第一個(gè)點(diǎn)的坐標(biāo)為<65,9>?,F(xiàn)在我們找到了需要的三個(gè)點(diǎn):序號(hào)
顏色
坐標(biāo)
相對(duì)坐標(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)在我們可以把它寫(xiě)成多點(diǎn)找色的格式了:--多點(diǎn)找色--在屏幕上以左上角坐標(biāo)<0,0>和右下角坐標(biāo)<639,959>確定的區(qū)域〔即全屏范圍內(nèi)尋找符合偏移范圍和顏色的3個(gè)坐標(biāo)點(diǎn)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為參照點(diǎn)0xffffff的偏色,list為周邊點(diǎn)的偏色,如果想對(duì)每一個(gè)周邊點(diǎn)單獨(dú)偏色,在每一個(gè)偏色后面加上偏色值即可,如"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>了。即使這個(gè)按鈕平移了,這個(gè)點(diǎn)的坐標(biāo)變了,也可以尋找到其準(zhǔn)確位置。注意事項(xiàng):posandcolor參數(shù)中的坐標(biāo)為相對(duì)坐標(biāo)。多點(diǎn)找色的代碼可直接用觸動(dòng)精靈取色工具生成,其使用方法參見(jiàn)圖文教程。顏色值的十六進(jìn)制文本中,其順序?yàn)镽GB。相對(duì)于第一個(gè)點(diǎn)的坐標(biāo),即用這個(gè)點(diǎn)的橫坐標(biāo)、縱坐標(biāo)分別減去第一個(gè)點(diǎn)的橫坐標(biāo)、縱坐標(biāo),可以為負(fù)數(shù)。使用此函數(shù)時(shí)精度參數(shù)設(shè)置過(guò)低,會(huì)導(dǎo)致性能大幅下降。引擎版本iOSv2.3.6以上要求包括基準(zhǔn)點(diǎn)在內(nèi)的所有參照點(diǎn)都必須在查找范圍之內(nèi)。函數(shù):findMultiColorInRegionFuzzyExt高級(jí)區(qū)域多點(diǎn)找色函數(shù)名稱(chēng):高級(jí)多點(diǎn)找色,高級(jí)區(qū)域多點(diǎn)找色函數(shù)功能:在指定區(qū)域,根據(jù)顏色以及其周邊點(diǎn)的顏色,尋找所有符合條件的點(diǎn)的坐標(biāo),支持模糊查找。支持版本:引擎版本iOSv1.0,Androidv1.2.8以上函數(shù)方法point=findMultiColorInRegionFuzzyExt<color,posandcolor,degree,x1,y1,x2,y2>;返回值:table類(lèi)型point參數(shù)
類(lèi)型
說(shuō)明color
number
欲尋找的參照點(diǎn)顏色posandcolor
string
周邊點(diǎn)顏色參數(shù)degree
number
尋找精度,范圍:1~100,當(dāng)是100時(shí)為完全匹配x1
number
找色區(qū)域左上角頂點(diǎn)屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點(diǎn)屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點(diǎn)屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點(diǎn)屏幕縱坐標(biāo)返回值
類(lèi)型
說(shuō)明point
table
以table形式返回所有符合條件的參照點(diǎn)的坐標(biāo),如未找到則返回的table為空返回的table為以下形式:table={
{x=100,y=110},
{x=200,y=210},
{x=300,y=310},
...}腳本實(shí)例:point=findMultiColorInRegionFuzzyExt<0xcf0000,"-37|3|0x942814,-38|20|0xeba62d,1|54|0xf2b054,28|22|0x8a5707",90,97,220,903,701>if#point~=0then
--如返回的table不為空〔至少找到一個(gè)符合條件的點(diǎn)
forvar=1,#pointdo
nLog<point[var].x..":"..point[var].y>
endend--另外一種偏色模式,引擎版本iOSv2.4.1以上支持--main為參照點(diǎn)0xffffff的偏色,list為周邊點(diǎn)的偏色,如果想對(duì)每一個(gè)周邊點(diǎn)單獨(dú)偏色,在每一個(gè)偏色后面加上偏色值即可,如"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不為空〔至少找到一個(gè)符合條件的點(diǎn)
forvar=1,#pointdo
nLog<point[var].x..":"..point[var].y>
endend注意事項(xiàng):引擎版本iOSv2.3.6以上版本中要求包括基準(zhǔn)點(diǎn)在內(nèi)的所有參照點(diǎn)都必須在查找范圍之內(nèi)。函數(shù):findImage高級(jí)區(qū)域找圖〔僅支持iOS函數(shù)名稱(chēng):區(qū)域找圖、高級(jí)區(qū)域找圖函數(shù)功能:在指定區(qū)域中,尋找指定的圖案,返回其左上角頂點(diǎn)坐標(biāo)。支持版本:引擎版本iOSv2.3.0以上函數(shù)方法x,y=findImage<picpath,x1,y1,x2,y2,alpha>;返回值:numberx,y參數(shù)
類(lèi)型
說(shuō)明picpath
string
將要尋找的圖片文件名x1
number
找色區(qū)域左上角頂點(diǎn)屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點(diǎn)屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點(diǎn)屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點(diǎn)屏幕縱坐標(biāo)alpha
number
匹配精度,此參數(shù)值越低匹配精度越高,默認(rèn)為40000000,此參數(shù)可省略返回值
類(lèi)型
說(shuō)明x,y
number
找到的圖片的左上角頂點(diǎn)坐標(biāo),如未找到則返回-1,-1腳本實(shí)例: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<'沒(méi)有找到圖片!'>;
end注意事項(xiàng):此函數(shù)推薦與snapshot截圖函數(shù)配合使用,成功率較高。匹配精度建議每次加減1000000,此參數(shù)值越低匹配精度越高默認(rèn)圖片路徑為/var/mobile/Media/TouchSprite/res〔參數(shù)中無(wú)需填寫(xiě)完整路徑,自建目錄請(qǐng)?zhí)顚?xiě)相對(duì)路徑。若該函數(shù)找圖不理想可使用findimageinregionfuzzy模糊區(qū)域找圖,幾種找圖方式可配合使用。函數(shù):snapshot截圖函數(shù)名稱(chēng):截圖函數(shù)功能:截取屏幕中指定區(qū)域的圖像并生成指定格式的圖片文件函數(shù)方法snapshot<picname,x1,y1,x2,y2,quality>;返回值:無(wú)參數(shù)
類(lèi)型
說(shuō)明picname
string
截圖保存的文件名x1
number
找色區(qū)域左上角頂點(diǎn)屏幕橫坐標(biāo)y1
number
找色區(qū)域左上角頂點(diǎn)屏幕縱坐標(biāo)x2
number
找色區(qū)域右下角頂點(diǎn)屏幕橫坐標(biāo)y2
number
找色區(qū)域右下角頂點(diǎn)屏幕縱坐標(biāo)quality
number
僅支持iOS,當(dāng)截圖格式選為jpg時(shí),可用此參數(shù)控制圖片質(zhì)量,此參數(shù)值為大于0且小于等于1的值腳本實(shí)例: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>;--以時(shí)間戳命名進(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<>>;--以時(shí)間戳命名進(jìn)行截圖w,h=getScreenSize<>;--右下角頂點(diǎn)坐標(biāo)最大為<寬度最大值-1,高度最大值-1>snapshot<current_time..".png",0,0,w-1,h-1>;注意事項(xiàng):Android系統(tǒng)保存圖片只支持png格式,不可以設(shè)置質(zhì)量;iOS系統(tǒng)保存圖片的格式可為bmp,jpg,png,因?yàn)閜ng是iOS中最常見(jiàn)的格式,所以推薦選擇png。截圖時(shí),如使用全屏截圖,右下角頂點(diǎn)坐標(biāo)最大為<<寬度最大值-1,高度最大值-1>,否則iOS系統(tǒng)會(huì)出現(xiàn)越界錯(cuò)誤,安卓系統(tǒng)截出的圖會(huì)是純白色的。默認(rèn)圖片路徑請(qǐng)使用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年幼兒園食品安全協(xié)議書(shū)
- 無(wú)固定期限勞動(dòng)合同書(shū)模板參考
- 農(nóng)業(yè)物資合作經(jīng)營(yíng)合同書(shū)樣本2024專(zhuān)業(yè)版
- 旅游合同修改條件
- 創(chuàng)業(yè)投資入股協(xié)議書(shū)例
- 標(biāo)準(zhǔn)小額借款擔(dān)保合同
- 全新個(gè)人分紅協(xié)議樣式2024年
- 工業(yè)場(chǎng)地裝修合同模板
- 協(xié)作開(kāi)發(fā)合同書(shū)示例大全
- 投資公司抵押擔(dān)保借款合同范本
- 小學(xué)英語(yǔ)就業(yè)能力展示
- 心肌病和心肌炎課件
- 《艾滋病毒》課件
- 平陽(yáng)港區(qū)西灣作業(yè)區(qū)防浪導(dǎo)流堤工程海域使用論證報(bào)告書(shū)
- 管道保溫計(jì)算公式
- 錄音行業(yè)的就業(yè)生涯發(fā)展報(bào)告
- 報(bào)廢汽車(chē)拆解工藝流程
- 生化報(bào)告解讀
- 胃癌科普講座課件
- 熔煉車(chē)間工安全培訓(xùn)
- 《多彩的職業(yè)》參考課件
評(píng)論
0/150
提交評(píng)論