Post by AnkuLua on Nov 10, 2016 23:57:13 GMT 9
AnkuLuaには特別な状況に使う函数があります。
zoom(pt1StartX, pt1StartY, pt1EndX, pt1EndY, pt2StartX, pt2StartY, pt2EndX, pt2EndY, step)
stepが指定した回数に,指が (pt1StartX, pt1StartY) から(pt1EndX, pt1EndY) まで移動すると同時に,他の指が (pt2StartX, pt2StartY) から(pt2EndX, pt2EndY) まで移動します。
次の例は,画面をズムアウトします。
continueClick(x, y, xRandom, yRandom, times)
この函数は(X,Y)から(X + xRandom,Y + yRandom)までの範囲で指定した回数で画面を連続にタップします。
普段,シングルタップ函数は速くないが,
ある範囲で画面を連続にタップしたい場合はcontinueClickを使ったらより速いです。
スクリプトTap Titans Clickをご参考してください
continueClick(PSMRL, times [,timeout])
continueClickはPSRMLとtimeoutパラメータも支援しています。戻り値なし。
continueClickが直接呼び出せる、或いはRegionで呼び出せる。
continueClickの時間行為はsetContinueClickTimingで設定できます。
setContinueClickTiming(downMs, intervalMs)
int downMs: タップの時間(mS)
int intervalMs: 隣接する二つのタップの間隔時間(mS)
continueMultiTouch(table of PSMRL, times [,timeout])
この函数はmulti touchを模擬できて、順番にPSMRL table中の全部オボジェクトを”times”の回数ずつタップします。
PS (Pattern 或いは String)の場合,”timeout”で設定した時間まで捜します。
timeout数値がせっていしなかったら,デフォールトの時間まで捜します。
continueMultiTouchはRegionで呼び出すことができません。
continueMultiTouchの時間行為もsetContinueClickTimingで設定します。
longClick(PSMRL [,seconds])
stopLongClick()
函数longClickはは画面の目標を押し続けます。
時間(seconds)を設定すれば、指定した秒数に押し続けます。
時間設定しないければ、次のタップ指令或いはstopLongClick()まで押し続けます。
numberOCR( region, imagePrefix)
numberOCRはregion区域に対して基本の数字OCRをします。
これらの図案はimagePregix0.png,imagePrefix1.png ... imagePrefix9.pngと名をつけて、ディレクトリimageに保存します。
regionの中に数字がなければ、exceptionを出します。
Heroes Charge: Booty Caveを参考したら
15列目に
数字の図案 power0.png,power1.png ... power9.pngはディレクトリimageに保存します。
numberOCRNoFindException(region, imagePrefix)
功能はnumberOCRと一緒、ただしregionの中に数字が見つからなくても、exceptionも出しません。
このサブルーチンは二つの数値を戻す。一つは認識した数字、もう一つは成功或いは失敗を表すブーリン数値(成功はtrue)。
getColor(PSMRL [, seconds])
この函数は目標のR,G,Bの色の数値を戻します。
効率のために、AnkuLuaは図案マッチの前に図案をgray levelに変えます。
だから、図案は彩色がどうか、AnkuLuaは認識できません。
でも、ゲームの中に、ボタンが灰色になると意味が変わることがあります。
この時、この函数を使って、目標は彩色がどうかを確認できます。
getTouchEvent()
ユーザーの画面の触ることを待って、その結果を戻します。
getTouchEvent()は次の3つの数値を戻します。
action(string): ユーザーの操作は "click"、"longClick"、"swipe"、"dragDrop" 中の1つ。
location(Location (Table)): もしaction は"click"或いは"longClick"の場合、タップ位置を戻します。"swipe"或いは"dragDrop"の場合、スタートとエンド位置のテーブルを戻します。
touchList (Table): 実際に触ったことについての資料。テーブル中の資料形式は{touchType, time, locaiton}
touchType: 整數,触る(1)、離れる(2)、移動(3)
time: 触るからの時間
location: 位置
AnkuLuaは簡単な判断しかしないから、もっと複雑のスクリプトを作る場合、touchListを使ってください。
ご注意:getTouchEvent() は画面にの触ることを遮って、この触ることがゲームソフトに入らないので、適切な処置が必要です。
スクリプトが触ることを受け入れることをユーザーに知らせるために、getTouchEvent()が画面全体を半透明の色で覆います。この色は
setTouchEventStyle(color)で設定します。colorの形式はARGB。
playMusic(file, loop)
指定した音声ファイルを一回再生して(loop = false)、或いは繰り返して再生する(loop = true)。この函数は専業版限定です。
音声ファイルをディレクトリmusicに保存して、fileにディレクトリは要りません。
stopMusic()
音声再生を止めます。専業版限定です。
vibrate(seconds)
指定した期間、設備を振動します。専業版限定です。
setVolumeDetect(boolean)
ブーリン数値に従って、音量検測を作動する或いは作動しません。函数 isVolumeUp() と isVolumeDown() は音量検測が作動しなければ、正確に動けません。音量検測が作動しない場合に、isVolumeUp() と isVolumeDown() がいつも falseを戻します。
isVolumeUp() and isVolumeDown()
isVolumeUp() と isVolumeDown() が音量の変化を検測します(音楽と着信音)。専業版限定です。
ご注意:一部分の設備に、音量ボタンを一回だけ押すと、今の音量設定を表示するだけで、音量はまだ変化しないです。
Timer
Timerオブジェクトを使って、スクリプト実行のかかる時間が分かります。
次はTimerの使い方
set()
時間リセット
戻り値: 前回set()が呼ばれたから、今回set()が呼ばれたまでの秒数です。
check()
戻り値: 前回set()が呼ばれたから、今回set()が呼ばれたまでの秒数です。
setScanInterval(seconds), setScanRate(frequency), getScanInterval(), getScanRate()
これらの函数は画面ゲットの時間間隔或いは頻度。
例えば、4秒毎に画面をゲットしたければ、次の2つ方法が使える
getScanInterval() と getScanRate() return the corresponding values.
ご注意: 試し版に、これらのscan函数は時間限定です
setBrightness(value), getBrightness()
画面の明るさを設定と認識する。valueは0~255の整数。
ご注意: 試し版に、setBrightness函数は時間限定です
getNetworkTime()
インターネットの時間を戻す(long)
scriptExit(String message)
すぐスクリプトの実行を止めて、messageを表示します。
typeOf()
Luaのもともと変数形式を判断する函数のtype()は画面に文字を入力するために使われてしまうので、
変数形式を判断したければ、typeOf()を代わって使ってください。
或いは、次の方法でtype()をもともとの使い道に戻して、文字入力の函数をkeyin()と名前を変えます。
chargerConnected()
USB充電線が繋がってる?はい(true) /いいえ(false)
isEmulator()
装置がエミュレータ? はい(true) /いいえ(false)
startApp(String packageName)
package nameは packageName のAppを実行する。
Package nameはgoogle playのAppのアドレスにid=後の文字。
例えば、AnkuLua試しバージョンのアドレスは
play.google.com/store/apps/details?id=com.appautomatic.ankulua.trial
だからpackage nameはcom.appautomatic.ankulua.trial
ご注意: 試し版に、startApp函数は時間限定です。
[次のページ]: スクリプト編集
[前のページ]: ユーザーインターフェイス函数
[ホーム]: AnkuLua介紹
zoom(pt1StartX, pt1StartY, pt1EndX, pt1EndY, pt2StartX, pt2StartY, pt2EndX, pt2EndY, step)
stepが指定した回数に,指が (pt1StartX, pt1StartY) から(pt1EndX, pt1EndY) まで移動すると同時に,他の指が (pt2StartX, pt2StartY) から(pt2EndX, pt2EndY) まで移動します。
次の例は,画面をズムアウトします。
-- ========== Settings ================
Settings:setCompareDimension(true, 1280)
Settings:setScriptDimension(true, 1280)
-- ========== main program ===========
zoom(50, 350, 330, 350, 1200, 350, 350, 350, 300)
continueClick(x, y, xRandom, yRandom, times)
この函数は(X,Y)から(X + xRandom,Y + yRandom)までの範囲で指定した回数で画面を連続にタップします。
普段,シングルタップ函数は速くないが,
ある範囲で画面を連続にタップしたい場合はcontinueClickを使ったらより速いです。
local p = find("target.png")
continueClick(p:getX(), p:getY(), 1, 1, 100)
スクリプトTap Titans Clickをご参考してください
continueClick(PSMRL, times [,timeout])
continueClickはPSRMLとtimeoutパラメータも支援しています。戻り値なし。
continueClickが直接呼び出せる、或いはRegionで呼び出せる。
continueClickの時間行為はsetContinueClickTimingで設定できます。
setContinueClickTiming(downMs, intervalMs)
int downMs: タップの時間(mS)
int intervalMs: 隣接する二つのタップの間隔時間(mS)
continueMultiTouch(table of PSMRL, times [,timeout])
この函数はmulti touchを模擬できて、順番にPSMRL table中の全部オボジェクトを”times”の回数ずつタップします。
PS (Pattern 或いは String)の場合,”timeout”で設定した時間まで捜します。
timeout数値がせっていしなかったら,デフォールトの時間まで捜します。
continueMultiTouchはRegionで呼び出すことができません。
continueMultiTouchの時間行為もsetContinueClickTimingで設定します。
-- example for calculator plus
png7 = find("7.png")
loc1 = find("1.png"):getTarget()
list = {Pattern("6.png"), png7, "8.png", loc1}
continueMultiTouch(list, 2)
-- the result is 67816781
longClick(PSMRL [,seconds])
stopLongClick()
函数longClickはは画面の目標を押し続けます。
時間(seconds)を設定すれば、指定した秒数に押し続けます。
時間設定しないければ、次のタップ指令或いはstopLongClick()まで押し続けます。
longClick("target.png", 2) -- target will be clicked for 2 seconds
longClick("target.png") -- target will be clicked and the click last
-- do anything except touch related methods
--
stopLongClick() -- now the click on target is released
longClick("target.png") -- target will be clicked and the click last
click("target2.png") -- click on target is reatarget2 is clicked
numberOCR( region, imagePrefix)
numberOCRはregion区域に対して基本の数字OCRをします。
これらの図案はimagePregix0.png,imagePrefix1.png ... imagePrefix9.pngと名をつけて、ディレクトリimageに保存します。
regionの中に数字がなければ、exceptionを出します。
Heroes Charge: Booty Caveを参考したら
15列目に
local p = numberOCR(r,"power")
数字の図案 power0.png,power1.png ... power9.pngはディレクトリimageに保存します。
numberOCRNoFindException(region, imagePrefix)
功能はnumberOCRと一緒、ただしregionの中に数字が見つからなくても、exceptionも出しません。
このサブルーチンは二つの数値を戻す。一つは認識した数字、もう一つは成功或いは失敗を表すブーリン数値(成功はtrue)。
getColor(PSMRL [, seconds])
この函数は目標のR,G,Bの色の数値を戻します。
効率のために、AnkuLuaは図案マッチの前に図案をgray levelに変えます。
だから、図案は彩色がどうか、AnkuLuaは認識できません。
でも、ゲームの中に、ボタンが灰色になると意味が変わることがあります。
この時、この函数を使って、目標は彩色がどうかを確認できます。
r, g, b = getColor("target.png")
if (r == b and r == g) then -- it's grayscale
getTouchEvent()
ユーザーの画面の触ることを待って、その結果を戻します。
getTouchEvent()は次の3つの数値を戻します。
action(string): ユーザーの操作は "click"、"longClick"、"swipe"、"dragDrop" 中の1つ。
location(Location (Table)): もしaction は"click"或いは"longClick"の場合、タップ位置を戻します。"swipe"或いは"dragDrop"の場合、スタートとエンド位置のテーブルを戻します。
touchList (Table): 実際に触ったことについての資料。テーブル中の資料形式は{touchType, time, locaiton}
touchType: 整數,触る(1)、離れる(2)、移動(3)
time: 触るからの時間
location: 位置
AnkuLuaは簡単な判断しかしないから、もっと複雑のスクリプトを作る場合、touchListを使ってください。
ご注意:getTouchEvent() は画面にの触ることを遮って、この触ることがゲームソフトに入らないので、適切な処置が必要です。
スクリプトが触ることを受け入れることをユーザーに知らせるために、getTouchEvent()が画面全体を半透明の色で覆います。この色は
setTouchEventStyle(color)で設定します。colorの形式はARGB。
action, locTable, touchTable = getTouchEvent()
print (action)
if (action == "click" or action == "longClick") then
print (locTable)
else
print (locTable[1])
print (locTable[2])
end
for i, t in ipairs(touchTable) do
print (string.format("%s: %fs, %s", t[1], t[2], t[3]:toString()))
end
playMusic(file, loop)
指定した音声ファイルを一回再生して(loop = false)、或いは繰り返して再生する(loop = true)。この函数は専業版限定です。
音声ファイルをディレクトリmusicに保存して、fileにディレクトリは要りません。
playMusic("music.mp3", false)
stopMusic()
音声再生を止めます。専業版限定です。
vibrate(seconds)
指定した期間、設備を振動します。専業版限定です。
setVolumeDetect(boolean)
ブーリン数値に従って、音量検測を作動する或いは作動しません。函数 isVolumeUp() と isVolumeDown() は音量検測が作動しなければ、正確に動けません。音量検測が作動しない場合に、isVolumeUp() と isVolumeDown() がいつも falseを戻します。
isVolumeUp() and isVolumeDown()
isVolumeUp() と isVolumeDown() が音量の変化を検測します(音楽と着信音)。専業版限定です。
ご注意:一部分の設備に、音量ボタンを一回だけ押すと、今の音量設定を表示するだけで、音量はまだ変化しないです。
setVolumeDetect(true)
while (true) do
if (isVolumeUp()) then toast("Volume up") end
if (isVolumeDown()) then toast("Volume down") end
end
Timer
Timerオブジェクトを使って、スクリプト実行のかかる時間が分かります。
次はTimerの使い方
set()
時間リセット
戻り値: 前回set()が呼ばれたから、今回set()が呼ばれたまでの秒数です。
check()
戻り値: 前回set()が呼ばれたから、今回set()が呼ばれたまでの秒数です。
t = Timer()
wait(1)
print(t:check())
wait(1.2)
print(t:check())
wait(1.3)
print(t:set())
wait(1.5)
print(t:check())
setScanInterval(seconds), setScanRate(frequency), getScanInterval(), getScanRate()
これらの函数は画面ゲットの時間間隔或いは頻度。
例えば、4秒毎に画面をゲットしたければ、次の2つ方法が使える
setScanInterval(4)
setScanRate(1/4)
getScanInterval() と getScanRate() return the corresponding values.
ご注意: 試し版に、これらのscan函数は時間限定です
setBrightness(value), getBrightness()
画面の明るさを設定と認識する。valueは0~255の整数。
ご注意: 試し版に、setBrightness函数は時間限定です
getNetworkTime()
インターネットの時間を戻す(long)
scriptExit(String message)
すぐスクリプトの実行を止めて、messageを表示します。
typeOf()
Luaのもともと変数形式を判断する函数のtype()は画面に文字を入力するために使われてしまうので、
変数形式を判断したければ、typeOf()を代わって使ってください。
或いは、次の方法でtype()をもともとの使い道に戻して、文字入力の函数をkeyin()と名前を変えます。
keyin = type
type = typeOf
chargerConnected()
USB充電線が繋がってる?はい(true) /いいえ(false)
isEmulator()
装置がエミュレータ? はい(true) /いいえ(false)
startApp(String packageName)
package nameは packageName のAppを実行する。
Package nameはgoogle playのAppのアドレスにid=後の文字。
例えば、AnkuLua試しバージョンのアドレスは
play.google.com/store/apps/details?id=com.appautomatic.ankulua.trial
だからpackage nameはcom.appautomatic.ankulua.trial
ご注意: 試し版に、startApp函数は時間限定です。
[次のページ]: スクリプト編集
[前のページ]: ユーザーインターフェイス函数
[ホーム]: AnkuLua介紹