「巨乳巫女痴漢電車」製作日記その21 弾き飛ばす処理について

ここ2, 3日はProject Zomboidやっていました。文明の終焉を見届ける感じが楽しいです…

新たに実装した要素

  • 新規エロ攻撃を実装した
  • 弾き飛ばし処理を実装した
  • 巫女の攻撃がヒットした際にダウンアニメーションと、処理のロジックを実装した

全て製品版の要素になります。体験版にも実装しようかと思っていたのですが、CF2.5が使用する.mfa形式のファイルってテキストファイルじゃなくてバイナリファイルなので、チェリーピックで要素を取るのが面倒なんですね。

gitに習熟していないと言われればそれまでなんですが…wでも、バージョン管理しないと面倒なことになるのはよく分かりました。いつでも過去に戻れる安心感は半端じゃないです。これがないとおちおち機能拡張も出来ませんw

弾き飛ばし処理

1フレームごとに少しずつ弾き飛ばすように改良しました。

今までは巫女の攻撃がヒットしたら、X方向に +- 30移動とかでノックバックを表現していたのですが、これだと一瞬で移動しちゃうので不自然なんですね。

1フレームずつ1ピクセル動かしていけば自然なんですが、どうやれば良いのか分からなかったんですね。今回何とか分かったのでメモ代わりに。

高速ループは使わない

高速ループは1フレームで全ての処理を実行してしまうので、結果的に一瞬で処理が終了してしまいます。

やり方

敵オブジェクトに「吹き飛ばし時間」みたいな変数を持たせます。

吹き飛ばし処理の実行中、「常に実行」で1を加算し続けて、一定の値未満ならば吹き飛ばし続ければ良いのです。

1秒 = 60FPS

自分のアプリケーションのFPSを確認しましょう。

CF2.5は通常1フレームに1回イベントを実行します。つまり、フレームレートが60なら「連続した処理の際に1回だけ実行」などの条件式を追加しない限り、1秒間に60回命令を実行します。

「吹き飛ばし時間」に1を加算するという処理を書いた場合、1秒後には60になっていますね。2秒後なら120、3秒後なら180になっています。この仕様を利用してタイマー代わりにしましょう。

ただし、これらはフレームベース動作の際の挙動です。デフォルトではタイマーベース動作になっているはずなので注意しましょう。特段の理由がなければ、この際にフレームベース動作に変更してしまいましょう。

黄色い部分のチェックを外すとフレームベース動作になります。

まとめ

吹き飛ばし時間が15以下(0.25秒以下)なら、敵の向いている方向と反対の方向にx座標 +- 1する処理を描きましょう。これだと少し小さすぎるかもしれませんので、もう少し数値を大きくしても良いかもしれません。

    “「巨乳巫女痴漢電車」製作日記その21 弾き飛ばす処理について” への1件の返信

    コメントを残す

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