foe,itemのstate,timeログ表示

> Stone Story RPGの案内へ戻る


[[]](二重角括弧内)のスクリプトが表示されなかったので、半角スペースを挿入しました🐥⸒⸒一応そのまま使ってもエラーにはなりません

テキスト差分比較 webツール
Mergely - Compare files and find differences online

▼ 索引"6"の使用画面(ペットは入れてない)

使用した動画

表示したいログの項目

 foe.state
 foe.time
 item.right.state
 item.right.time
 item.left.state
 item.left.time

学習した事

 配列で変数の命名が少なく済む。データ比較にも良い
 関数定義の()内は^が不要
 関数使用の()内は^が必要

1. foe.state情報ログの取得の為Insertサンプルを使用

// マニュアル例を表示させる
var myArray = [10, 3]
myArray.Insert(1, "apple")

for i = 0..myArray.Count()-1
  >`1,@i@,@myArray[i]@
// 配列は [10, "apple", 3] になります

▲ 上に戻る

2. 条件をつけてInsertを1回実行してみる

var myArray = ["開始","終了"]

?myArray.Count() = 2
  myArray.Insert(1,"割り込んじゃいますか")

for i = 0..myArray.Count()-1
  >`1,@1+i@,@i@ @myArray[i]@

▲ 上に戻る

3. フレームごとにfoe.state,foe.timeを記録

var myArray = ["foe","start"]

?myArray.Count() <= 10
  myArray.Insert(1,foe.state+"."+foe.time)
?myArray.Count() > 10
  myArray.RemoveAt(10)
for i = 0..myArray.Count()-1
  >`10,@1+i@,@myArray[i]@

▲ 上に戻る

4. 見出しにカラー適用

var myArray = ["foe","start"]
var rows = 10

?myArray.Count() <= rows
  myArray.Insert(1,foe.state+"."+foe.time)
?myArray.Count() > rows
  myArray.RemoveAt(rows)
for i = 0..myArray.Count()-1
  >`10,@1@,#51b9aa,@myArray[0]@
  >`10,@1+i@,#999999,@myArray[i]@

▲ 上に戻る

5. プロセスを関数にまとめる。ハイライト表示

var fst_logs = [ ["start",""]]

// 定義
func process_st_logs(
x,y,rows,color,logs,state_time,txt)
  var rmv_rows = rows
  // ログ記録
  ?logs.Count()
    logs.Insert(0,state_time)
  ?logs.Count() & logs[0][0] = logs[1][0]
    logs.RemoveAt(1)
  ?logs.Count() > rmv_rows
    logs.RemoveAt(rmv_rows)
  // ログ表示
  for i = 0..logs.Count()-1
    >`@x@,@y@,@color@,@txt@
    >`@x@,@1+y+i@,#999999,
    ^@logs[i][0]+"."+logs[i][1]@
    >`@x@,@1+y@,#dddddd,
    ^@state_time[0]+"."+state_time[1]@

// 関数使用
//           (x,y,rows,color,logs,state_time)
process_st_logs(10,1,10,"#51b9aa",fst_logs,
^[foe.state,foe.time],"Fs.Ft")

▲ 上に戻る

6. itemログも追加。座標調整の変数をローカルにしたいので、ログ表示の関数を作成

// variables ///////////////////////////////////

var foe_st_logs = [ ["start",""]]
var itemL_st_logs = [ ["start",""]]
var itemR_st_logs = [ ["start",""]]
var rows = 10 // 合計行数

// functions ///////////////////////////////////

// 定義_ログ処理プロセス
func process_st_logs(
x,y,rows,color,logs,state_time,txt)
  // ログ記録
  ?logs.Count()
    logs.Insert(0,state_time)
  ?logs.Count() > 1 & logs[1][0] = logs[0][0]
    logs.RemoveAt(1)
  ?logs.Count() > rows
    logs.RemoveAt(rows)
  // ログ表示
  for i = 0..logs.Count()-1
    >`@x@,@y@,@color@,@txt@
    >`@x@,@1+y+i@,#999999,
    ^@logs[i][0]+"."+logs[i][1]@
    >`@x@,@1+y@,#dddddd,
    ^@state_time[0]+"."+state_time[1]@

// 定義_ログ表示まとめ
func show_st_logs(x_origin,y,rows)
  var x = x_origin
  // (x,y,rows,color,logs,state_time,txt)
  // ログ_アイテムL_item.right(left).state(time)
  process_st_logs(x,y,rows,"#dc8146",
  ^itemL_st_logs,
  ^[item.left.state,item.left.time],"Ls.Lt")

  // xで見かけた座標の調整方法 明解でいいですね!
  x += 8

  // ログ_アイテムR_item.right(left).state(time)
  process_st_logs(x,y,rows,"#dc8146",
  ^itemR_st_logs,
  ^[item.right.state,item.right.time],"Rs.Rt")

  x += 8

  // ログ_敵_foe.state(time)
  process_st_logs(x,y,rows,"#51b9aa",
  ^foe_st_logs,
  ^[foe.state,foe.time],"Fs.Ft")
  
// main ////////////////////////////////////////
  
// ログリセット(なくてもいい)
?loc.begin | loc.loop
  foe_st_logs = [ ["start",""]]
  itemL_st_logs = [ ["start",""]]
  itemR_st_logs = [ ["start",""]]
// ログ表示 (x_origin,y,rows)
show_st_logs(10,1,10)

▲ 上に戻る

コンボちゃんが作ったワンコ追加

import Cosmetics/PetDog

▲ 上に戻る