GOSj、GScrip、ハイドライドGS更新今はゲームエンジン(GOSj)、GScripのデバッグをしています
コンパイルをスレッドで実行するように修正しました。
今までコンパイルをメインループで行っていてコンパイル時間が長いためアプリが停止する問題がりました。
また他のアプリに切り替えるとアプリが落ちる問題がありました。
コンパイルをスレッドで処理するようにしたので、その間もGScriptが実行できるようになりました。
ロード中のアニメーションなどができます。
androidはスレッドはアプリを切り替えてもバックグラウンドで実行しているようなので、コンパイル中に他のアプリに切り替えていても処理をおこなっているようです。
ただ、今はスレッドを停止させることができないので調べてみます
P.S
ハイドライドGSは魔法に経験値(exp)とレベルを実装しました
今は長押しの時間で使う魔法のレベルを決定しています
P.S(2)
ゲームのプログラム(設計)に大問題があることがわかりました
残るバグの幾つかが共通する設計のミスによる問題だとわかりました
P.S(3) GProcessについて
GScriptの特徴はGProcessを使ってプログムしている点です。これはコルーチン、スプライト、メモリ…などのリース(資源?)をGProcessでグループ化して管理しています。ハイドライドGSではゲームのGプロセスがあり、その下に子GプロセスとしてステージGプロセス、その子供にエリアGプロセスがあります。エリアGプロセスの子供としてプレーヤーGプロセス、モンスターGプロセス、エフェクトGプロセス…を生成しています。それらはGプロセス単位でポーズや表示、非表示、破棄など行えます。
モンスターGプロセスをポーズするとモンスターだけが停止してその他は実行されます。
アクションアドベンチャーではイベントなどの処理にとても役立ちます。イベント中はプレーヤーやモンスターをポーズしてその間、イベント処理を実行させることがでいるからです。エリアチェンジなど行うのもエリアGプロセスを破棄すれば子供のプレーヤー、モンスター、エフェクト...が後処理を気にせずにプログラムを組むことができます
グラフィックエディッタとマップエディタもゲームGプロセスとは独立実装して起動しています。ゲームと同時に並列実行することも可能ですが意味はないです。ゲームGプロセスをポーズ、非表示してエディッタのプロセスを起動、表示させます。エディットが済めばエディッタのGプロセスをポーズ、非表示にしてゲームを再開させるだけです
(癖があるのでなれるのに大変かもしれませんが・・・)