以前に作成したTJSのリバーシをKAGを使って
体裁を整えようと決意しました。
……が、予想以上に難しいことに気づきました。
何より、マウスのイベントを拾う必要があるのですけど、
スクリプトは逐次実行型で書いていくため、
イベントドリブンな記述をするのには厳しすぎます。
# クリックだけでなく、座標や左・右クリックの区別もする必要があるため。
というわけで、悩んだ結果KAGPluginで実装させることに。
画面一覧
・タイトル画面
・対戦相手選択画面
・ゲーム画面
上記の画面構成で作ってみることにしました。
タイトル画面と相手選択画面はグラフィカルマップを
使えばあっというまに実装できるので何の問題もないです。
肝心のゲーム画面はKAGPluginによる実装です。
具体的に言うと、透明のレイヤをひとつかぶせてしまい、
そのレイヤのonMouseDownイベントを拾ってゲームを
進行させていこうかと。
そして画面を右クリックするタイミングでトリガを発行して
KAGに制御を戻してやることにしました。
TJSもKAGもにわかなため、トライアンドエラーの繰返しです。
レイヤ構成は非常に悩んだのですが、こんな感じで考えてます。
背景レイヤ
KAGの背景をそのまま利用します。
イベント取得用レイヤ
onMouseDownを取るためのレイヤですが、盤を描くための
レイヤでもあり、各種オブジェクトのコンテナとして使います。
前景レイヤ
KAGの前景を利用しようと思いましたが自前で実装します。
メッセージレイヤ
これが一番厳しいです。
仮にKAGのメッセージレイヤを使うにしても、TJSから使うには
どうやらprocessCh()で1文字ずつ呼び出すしかなさそうだったので
それならばと適当にレイヤを作って、そこにdrawTextで
オーナードローして表示することに決めました。
ちなみに駒は全て1つ1つがレイヤオブジェクトになっています。
今回はここまで。