追記:2月21日これはもう古くって、使ってません。
// 定数
// moveの引数
public MV_U = 1 // 上
public MV_RU = 2 // 右上
public MV_R = 3 // 右
public MV_RD = 4 // 右下
public MV_D = 5 // 下
public MV_LD = 6 // 左下
public MV_L = 7 // 左
public MV_LU = 8 // 左上
// skilの引数
public SKIL_1 = 1
public SKIL_2 = 2
public SKIL_3 = 3
// ------------------------------------------------------------
// INI -------------------------------------------------------
// ------------------------------------------------------------
print " ---- INI --------"
// 解像度 w:1366 h:768 の端末で開発
public SW = G_SCREEN_W
public SH = G_SCREEN_H
public SW_AJST = 0
public SH_AJST = 0
// 画面のID取得
public W_ID = -1
n = GETALLWIN()
IFB n > 0 // 全ウィンドウの名前を確認
FOR i = 0 TO (n - 1)
// ここのandroidは実際のウィンドウ名の文字一部分に変更して使う
IF POS("android",STATUS(ALL_WIN_ID[i], ST_TITLE)) = 0
CONTINUE
ENDIF
IF MSGBOX("ウィンドウ名は" + STATUS(ALL_WIN_ID[i], ST_TITLE) + "ですか?",BTN_YES OR BTN_NO) = BTN_YES
W_ID = ALL_WIN_ID[i]
BREAK
ENDIF
NEXT
ELSE
MSGBOX("ウィンドウが見つかりませんでした")
exitexit // 終わり
ENDIF
IF W_ID = -1
MSGBOX ("ウィンドウが見つかりませんでした")
exitexit // 終わり
ENDIF
// ゲーム画面の位置
public W_POS_X
W_POS_X = STATUS(W_ID,ST_X)
public W_POS_Y
W_POS_Y = STATUS(W_ID,ST_Y)
print "画面の位置:" + W_POS_X + "," + W_POS_Y
// 相対座標になるための補正値
public AJST_X
public AJST_Y
AJST_X = SW_AJST + W_POS_X
AJST_Y = SW_AJST + W_POS_Y
// ゲーム画面のサイズ
W_WIDTH = STATUS(W_ID,ST_WIDTH)
W_HEIGHT = STATUS(W_ID,ST_HEIGHT)
print "画面の幅:" + W_WIDTH
print "画面の高さ:" + W_HEIGHT
// 歩く速度の補正値
CHR_WALK = INPUT("キャラクタの速度を数字で入力(主人公の速度は0)")
IF CHKNUM(CHR_WALK) = FALSE
MSGBOX ("半角数字で入力して下さい。")
exitexit
ENDIF
print "キャラの速度:" + CHR_WALK
// 画面の幅と高さから、タップの基準値を決める
public DEF_POS[2]
DEF_POS[1] = W_WIDTH*1/2 //ゲーム画面の幅の真ん中で
DEF_POS[2] = W_HEIGHT*3/4 // 高さは下から1/4の位置をタップ基準値としておく
// タップの基準となる位置
print "タップ基準位置 [" + DEF_POS[1] + ", " +DEF_POS[2]+ "]"
IF MSGBOX("タップ基準位置をタップしますか?",BTN_YES OR BTN_NO) = BTN_YES
doubleC(DEF_POS[1],DEF_POS[2])
IF MSGBOX("タップした場所は大丈夫でしたか?",BTN_YES OR BTN_NO) = BTN_NO
exitexit
ENDIF
ENDIF
// 画面の幅と高さから、なぞる距離をきめる
public DEF_NAZORU
DEF_NAZORU = W_WIDTH*1/5
print " ------------------"
count = 1
While True
timSTART = GETTIME()
print (G_TIME_HH+":"+G_TIME_NN + ":" +G_TIME_SS + " >> " + count + " 週目" )
// --------------------------------
// メイン処理LOOP
// マップ1~ボスまでの道のり
// クリアできたらクエスト再挑戦
// --------------------------------
sleep(3)
count = count + 1
print getTimeSec(timSTART) + " 秒で完了"
Wend
// ---------------------------------------------
// 秒数
// 引数の時間と現在時刻の差を返す
function getTimeSec(tim)
now = GETTIME()
result = now - tim
fend
// -------------------------------------------
procedure move(mode,tim)
SLEEP(0.1)
MMV(DEF_POS[1] + AJST_X,DEF_POS[2] + AJST_Y) // 基準となる位置
BTN(LEFT, DOWN)
SLEEP(0.1)
for i = 0 to DEF_NAZORU
SELECT mode
CASE MV_U
MMV(DEF_POS[1] + AJST_X , DEF_POS[2] + AJST_Y - i)
CASE MV_RU
MMV(DEF_POS[1] + AJST_X + i/1.5, DEF_POS[2] + AJST_Y - i)
CASE MV_R
MMV(DEF_POS[1] + AJST_X + i , DEF_POS[2] + AJST_Y )
CASE MV_RD
MMV(DEF_POS[1] + AJST_X + i/1.5, DEF_POS[2] + AJST_Y + i)
CASE MV_D
MMV(DEF_POS[1] + AJST_X , DEF_POS[2] + AJST_Y + i)
CASE MV_LD
MMV(DEF_POS[1] + AJST_X - i/1.5, DEF_POS[2] + AJST_Y + i)
CASE MV_L
MMV(DEF_POS[1] + AJST_X - i , DEF_POS[2] + AJST_Y )
CASE MV_LU
MMV(DEF_POS[1] + AJST_X - i/1.5, DEF_POS[2] + AJST_Y - i)
DEFAULT
naguru(3)
SELEND
sleep(0.0001)
next
sleep(tim)
BTN(LEFT, UP)
SLEEP(0.2)
fend
// --------------------------------------------
// スキル
procedure skil(mode)
SLEEP(0.1)
MMV(DEF_POS[1] + AJST_X,DEF_POS[2] + AJST_Y) // 基準となる位置
BTN(LEFT, DOWN)
SLEEP(0.3)
for i = 0 to DEF_NAZORU
SELECT mode
CASE SKIL_1
MMV(DEF_POS[1] + AJST_X - i/1.5, DEF_POS[2] + AJST_Y - i)
CASE SKIL_2
MMV(DEF_POS[1] + AJST_X + i/1.5, DEF_POS[2] + AJST_Y - i)
CASE SKIL_3
MMV(DEF_POS[1] + AJST_X , DEF_POS[2] + AJST_Y + i)
DEFAULT
naguru(3)
SELEND
sleep(0.0001)
next
BTN(LEFT, UP)
SLEEP(0.2)
fend
// --------------------------------------------
// 殴る
procedure naguru(cnt)
for i = 0 to cnt
singleC(DEF_POS[1],DEF_POS[2])
next
fend
// -------------------------------------------
// シングルクリック
// 引数は、ゲーム画面の相対位置
procedure singleC(tageX, tageY)
SLEEP(0.2)
MMV(tageX + AJST_X, tageY + AJST_Y)
BTN(LEFT, DOWN)
SLEEP(0.1)
BTN(LEFT, UP)
SLEEP(0.2)
fend
// -------------------------------------------
// ダブルクリック
// 引数は、ゲーム画面の相対位置
procedure doubleC(tageX, tageY)
singleC(tageX, tageY)
singleC(tageX, tageY)
fend
// -------------------------------------------
0 件のコメント:
コメントを投稿