CF2.5における各イベントの範囲について

大分バグが取れて、条件式の整理が進んできました。CF2.5の習熟も大分進んできました。

先日、ようやくグローバルイベントの存在を知りました…どうやら私はフレームイベントをグローバルイベントと勘違いしていたようですw

CF2.5が持つイベントの種類

イベントの種類について少し紹介してみます。CF2.5は3つのイベントエディタがあります。

  1. グローバルイベントエディタ
  2. フレームイベントエディタ
  3. オブジェクトイベントエディタ

どれも基本的に出来ることは同じですが、条件式の及ぶ範囲(スコープ)が変わってくるんですね。

グローバルイベント > フレームイベント > オブジェクトイベント

左に行くほど、条件の及ぶ範囲が広くなります。

グローバルイベントに書いた条件式は全フレームに適用されます。
フレームイベントに書いた条件式はそのフレーム内のみに適用されます。

それなら全部グローバルイベントに書いとけばええやん!!と思ってしまうかも知れません。

実は、この考え方はプログラミング的には非常に危険なのです…。

イベントの効果が及ぶ範囲が広いということは、管理が難しくなるということです。管理が難しくなるということは、バグが生まれやすくなるのです。

小さなゲームなら全部グローバルイベントに書いても問題無いかもしれませんが、ある程度の規模になってくるともう手がつけられなくなるので気をつけて下さい。

グローバルイベントに記述するべき条件式

ちなみにCtrl + hでグローバルイベントにすぐ切り替えられます…

ゲームを通して使える条件式を書こう

  • 音量の設定
  • キーマッピング
  • 再起動
  • 終了
  • スクリーンショット

この辺りはグローバルイベントに書いておくと便利かもしれません。

フレームイベントに記述するべき条件式

ゲームの核となる要素を書こう

  • プレイヤーの処理
  • 敵キャラの処理

オブジェクトイベントは?

切り替えがダルいので使わないようにしましょう…。

後、オブジェクトイベントは何故かイベントリストエディタが利用出来ないので、可読性が悪いというのもあります。

大切なこと

イベントは上から順番に実行されます

イベントは基本的に上から順に実行されます。どう考えても正しいのに動かない~って時はこの辺を疑ってみても良いかもしれません。

コメントやイベントグループをどんどん使おう

コメントの重要性

プログラムは1ヶ月後に見ると綺麗さっぱり忘れています。1ヶ月後の自分のために何故その処理を書いたのか、どういう意図があるのかを書き残しましょう。

イベントグループで機能を分割しよう

プログラミングで言うところの関数みたいな機能です。ちょっと違う気もしますがw

イベントグループを作成して1)例えばグループ名: 移動処理とか、その中にやりたい処理を書いておきます。使わない時は非アクティブにしておくと、そのイベントグループ内の処理は無視されます。

普段使わない機能は非アクティブにしておくと、無用なバグや不具合を抑えることが出来ます。2)これ知らないと本当苦労するので、徹底しましよう…

終わり

大体この認識でおkだと思います。疲れた~

    脚注   [ + ]

    1. 例えばグループ名: 移動処理とか
    2. これ知らないと本当苦労するので、徹底しましよう…

    コメントを残す

    メールアドレスが公開されることはありません。