配布するぜ☆ グローバル変数をだいたいリアルタイム監視☆!
ダウンロード
━━━━━
説明書抜粋 (Ver 1.00.0)
━━━━━
チュートリアル
==============
(1)ゲームエンジンAIMS 本体を入手してください。
『AIMS V1.91bダウンロード』
http://aims.dna-softwares.com/?page_id=14
(2)aims-ver1.91b.zip を解凍してください。
aims-ver1.91b フォルダーが出てきます。
(これは項目9番以降で使います)
(3)ゲームエンジンAIMS / Lua のサンプル・プログラムを入手してください。
『AIMS サンプルプログラム「Suica32」』
http://aims.dna-softwares.com/?page_id=14
(4)aims-sample-sucia32.zip を解凍してください。
Suica32 フォルダーが出てきます。
(5)添付の 『Luaソースコード』フォルダーの中の snp.lua を取り出して、
Suica32/s フォルダーの下に置いてください。
(6)Suica32/boot.lua ファイルの 17行目あたりに1行作って、
prequire("s/snp.lua");
と追記してください。
(7)Suica32/s/scene/game.lua の 163行目あたり(endの上)に 1行 作って、
snp_snapshot()
と追記してください。
(8)Xenon.ForAims.Snapshot.exe アイコンをダブルクリックしてください。
(9)『aims-ver1.91b/bin』フォルダーの中の AIMS_dev.exe を取り出して、
Suica32 フォルダーに入れてください。
(10)AIMS_dev.exe を、AIMSd.exe にリネームしてください。
(11)AIMSd.exe をダブルクリックしてください。
(12)ゲームを始めると、Suica32 フォルダーの下に snapshot.txt ファイルが
作られるようになります。
1秒間に 60 回ぐらい、大量のデータを書き込もうとします。
豪快です。
(13)この snapshot.txt のファイルパス、
例えば C:\Users\Muzudho\Downloads\Sucia32\snapshot.txt
を、
Xenon.ForAims.Snapshot.exe の、[ファイルパス]テキストボックスに入れてください。
こちらも 1秒間に 60 回ぐらい、大量のデータを読み込もうとします。
ファイルの読書ロック/解除がぶつかりあって
豪快です。
(14)Xenon.ForAims.Snapshot.exe のテキストエリアには、グローバル変数の一覧が
表示されるはずです。
_G.A.bg=7
_G.A.bg=7
_G.A.extend=10
_G.A.extend=10
_G.A.level=11
_G.A.level=11
_G.A.lives=12
_G.A.lives=12
_G.A.player=8
_G.A.player=8
_G.A.score=9
_G.A.score=9
_G.ACTOR_LIFE=1
...
スクロールバーが役に立たないと思います。
(15)[正規表現]テキストボックスに、正規表現を入力して、表示する件数を
絞り込んでください。
最初は
^.*=.*$
と入っています。
例えば、 level 変数の中身だけを見たい場合は、
^.*level=.*$
に変更します。
正規表現の使い方は独習してください。C# 版の正規表現です。
(16)ウィンドウの右下をマウスでドラッグ&ドロップして、広げてください。
以上
使いこなす知識
==============
Lua言語 のグローバル変数は、 _G テーブルに入っています。
_G テーブルには、 _G._G と _G.package が含まれているのですが、
これを見ていると ぐるぐる 無限ループを起こすので、
snp.lua では、この2つの中身は見に行かないようにしています。
また、Lua言語 では、 _ で始まる変数名は、Lua言語が使っているものなので、
ユーザーが見たいことは無いだろうと思い、
これも snp.lua では、見に行かないようにしています。
そして、Lua言語では、関数も変数の中に入りますが、
ユーザーが見たいことは無いだろうと思い、
これも snp.lua では、見に行かないようにしています。
使いやすいように改造してもらって構いません。
実行速度が遅くなりすぎる場合の改善方法 (Ver 1.00.0)
━━━━━
-- snp_snapshot() の呼び出し回数を減らします。
--------------------------------------------------------------
-- 全ての変数を外部ファイルに保存
--------------------------------------------------------------
if _DEBUG and getSceneUptime() % 100 == 0 then
snp_snapshot()
end
正規表現のサンプル (Ver 1.00.0)
━━━━━
全部
====
^.*=.*$
「V.prcMoveA」という変数を監視したい場合
========================================
^_G\.V\.prcMoveA=.*$
「V.prcMoveA」「V.prcMoveB」という変数を監視したい場合
======================================================
^_G\.V\.prcMove[AB]=.*$
「V.prc」で始まる変数を監視したい場合
======================================================
^_G\.V\.prc.*=.*$
「VV_snp.text」という変数を監視したい場合
=========================================
^_G\.VV_snp.text=.*$
※改行しているテキストは、1行しか見れません。
「V.prc」で始まる変数と、「V.game_activePlayer」という変数を監視したい場合
==========================================================================
^(?:_G\.V\.prc.*|_G\.V\.game_activePlayer)=.*$
またのお越しをお待ちしております