cafemaster さん、こんばんは CyberCatfish です。
なんとなーく解決の糸口が見えたようで、頑張ってください(笑
多分最後になると思いますが、メモリ関連では ビュー範囲 と ライフ範囲 を
意識しながら書くか、パッケージ化して毎度意図しないでもきちんと消える
事を意識する必要あります。
lua では、殆どメモリ管理を考えないで書けるんですが、Corona SDK を使う
限り意識せざるをえない場面に出くわします、特に Display 関連 ( ToT)
先に山本さんが指摘された Physics 関連も同じです、アニメや衝突など判定
するためにタイマーやら画面やらにぶら下がっちゃうおかげで、シーンとい
う範囲には収まらないので、初期化や削除が別途必要になるということなの
で、やっぱり ビュー/ライフ範囲の意識になります。
幾つか残っているようですが、グループを消そうとした時にすでにグループ
がいなかったり、グループ消したつもりがぶら下がってるのいて消えてない
とか、下にいたオブジェクトがグローバルに付け変わってたりする事がある
と思います。
他にも、イベントリスナーを消すのはファンクションオブジェクト消滅前な
ので、オブジェクト消滅前に消す必要あるとか・・
Scene.A > hide:will <- イベント消すなら最低でもこの辺
Scene.A > hide:did <- オブジェクト消すのはこれ以降
Scene.A > Destroy <- シーン関連を処分するのはこのあたり
この辺はロジカル的に設計していないとわかりにくいんですが、一々面倒だ
という場合はデバッガーで止めて、そのオブジェクトがどうなってるのか見
るのが一番手っ取り早いです。
最初はデバッグ自分で作ってたんですが、今は LuaGlider が手放せません (^^;;
イベント内で止めて、その変数とかがどうなってるのか見えます。
また、Profile 実行でグルグルまわしてやると、忘れてたオブジェクトが残存
してるのが見えたりして、お手軽に確認できます。
と、また長くなってしまいました orz