おしながき
このブログは主にエロアクションゲームの製作日誌ですので
18歳未満の方、エロに興味の無い方は閲覧をご遠慮ください。
日本語だけ japanese version only
18禁です adults only
18歳未満の方、エロに興味の無い方は閲覧をご遠慮ください。
日本語だけ japanese version only
18禁です adults only
MMF2覚え書き、グローバルオブジェクトとサブアプリケーション
久しぶりのMMF2覚書
キーコンフィグの処理をメイン部分に組み込んだときのサブアプリ絡みで少し苦労したお話。
冗長なので閉じ
今回はイベント周りの処理を
フレームイベント?:ステージ固有の処理、オブジェクトグループが絡む処理。
グローバルイベント:アクション部分の主な処理。
オブジェクトイベント:それぞれのオブジェクトの処理。
て感じで組んでましてキー入力周りはアクション部分なのでグローバルイベントで処理しています。
キーコンフィグを実装するにあたり設定をどこかの変数に格納しておかないといけないわけですが
すでにA~Yくらいまで使っているグローバル変数(文字列)をあまり消費したくないなーと思ってしまったのが
そもそもの間違いの始まりグローバル変数は実質制限がないのでいくら使ってもよかったのですが…
んじゃキー設定格納オブジェクトを使ってグローバル化すればグローバル変数的につかえるじゃん?
と、まーひらめいたつもりで手間を増やすだけというお決まりのパターンにはまるわけです。
んで組み込んでみたところ、キーボードは問題なく動いてます…が、パッドの挙動が変です。
Aというボタンに割り当てられたボタン番号は一つのはずなのになぜか二つの処理をしています。
デフォルトの設定とコンフィグ設定した二つが同時に実行されている…解せぬ
Aにどのボタンが割り当てられてるかを見るために変数を表示させてたところデフォルト値になっています。
んー? コンフィグ設定した方はどこで実行してんだこれ…解せぬ
まぁここでいつものように時間を浪費して色々挙動を調べた挙句いきついたのが
メインアプリとサブアプリで両方グローバルイベントを含んでいる件。
なんでそんなことしてんの?って思われそうですがサブアプリの仕様を未だに理解できてないので
なぜかメインで含んでないとサブで使えないと思い込んでたのですね…実際は使えました
確認のためメインアプリの方で変数を表示させてみると…こっちはコンフィグ設定の数値になってました
ご丁寧にメインアプリとサブアプリで別々にグローバルイベントの処理がされていたようです。
つまりα版は2重にACT部分の処理をしていたということですね。この部分に気がつけたのは収穫でした
もう一つの問題。2重に処理してるにしてもなぜ別々の処理になっていたのか
これはグローバルオブジェクトの変数がメインアプリからサブアプリには反映されないからのようです。
ということで
メインアプリとサブアプリで両方グローバルイベントを含めると両方別々に処理されている
グローバルオブジェクトの変数とフラグはメインアプリからサブアプリには反映されない(ぽい)
サブアプリケーションから別のサブアプリケーションにフレームが移った場合は反映される(たぶん)
結論:素直にグローバル変数使っとけと
キーコンフィグの処理をメイン部分に組み込んだときのサブアプリ絡みで少し苦労したお話。
冗長なので閉じ
今回はイベント周りの処理を
フレームイベント?:ステージ固有の処理、オブジェクトグループが絡む処理。
グローバルイベント:アクション部分の主な処理。
オブジェクトイベント:それぞれのオブジェクトの処理。
て感じで組んでましてキー入力周りはアクション部分なのでグローバルイベントで処理しています。
キーコンフィグを実装するにあたり設定をどこかの変数に格納しておかないといけないわけですが
すでにA~Yくらいまで使っているグローバル変数(文字列)をあまり消費したくないなーと思ってしまったのが
そもそもの間違いの始まりグローバル変数は実質制限がないのでいくら使ってもよかったのですが…

んじゃキー設定格納オブジェクトを使ってグローバル化すればグローバル変数的につかえるじゃん?
と、まーひらめいたつもりで手間を増やすだけというお決まりのパターンにはまるわけです。
んで組み込んでみたところ、キーボードは問題なく動いてます…が、パッドの挙動が変です。
Aというボタンに割り当てられたボタン番号は一つのはずなのになぜか二つの処理をしています。
デフォルトの設定とコンフィグ設定した二つが同時に実行されている…解せぬ
Aにどのボタンが割り当てられてるかを見るために変数を表示させてたところデフォルト値になっています。
んー? コンフィグ設定した方はどこで実行してんだこれ…解せぬ
まぁここでいつものように時間を浪費して色々挙動を調べた挙句いきついたのが
メインアプリとサブアプリで両方グローバルイベントを含んでいる件。
なんでそんなことしてんの?って思われそうですがサブアプリの仕様を未だに理解できてないので
なぜかメインで含んでないとサブで使えないと思い込んでたのですね…実際は使えました

確認のためメインアプリの方で変数を表示させてみると…こっちはコンフィグ設定の数値になってました

ご丁寧にメインアプリとサブアプリで別々にグローバルイベントの処理がされていたようです。
つまりα版は2重にACT部分の処理をしていたということですね。この部分に気がつけたのは収穫でした
もう一つの問題。2重に処理してるにしてもなぜ別々の処理になっていたのか
これはグローバルオブジェクトの変数がメインアプリからサブアプリには反映されないからのようです。
ということで



結論:素直にグローバル変数使っとけと

スポンサーサイト
この記事へのコメント
トラックバック
URL :