アクションゲームの処理の流れについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
aridai
記事: 34
登録日時: 5年前

アクションゲームの処理の流れについて

#1

投稿記事 by aridai » 5年前

スーパーマリオのようなアクションゲームを制作している者です。
今回は、ダンジョン中の処理の流れについてアドバイスをお願いします。

私が最初に考えたのは

・プレーヤーの移動処理
・敵の移動処理
・トラップの処理
・地形との当たり判定による座標の補正
・敵キャラとの当たり判定による座標の補正
・マップの描写
・トラップの描写
・敵の描写
・プレーヤーの描写
・画面の適応 (ダブルバッファリングを使っています)
・画面の消去
・待機 (fpsの調整のため)

という流れです。
これだと、当たり判定が2回出てくるのでしょうがないとはいえ、
効率のよい設計とは言えないと思います。
なので、より効率のよい設計があれば教えて下さい。

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: アクションゲームの処理の流れについて

#2

投稿記事 by h2so5 » 5年前

なぜ効率の良い設計でないと思ったのでしょうか。

aridai
記事: 34
登録日時: 5年前

Re: アクションゲームの処理の流れについて

#3

投稿記事 by aridai » 5年前

すいません、もう少し詳しく書くと

・キー入力を受け付けて、プレーヤーの座標をいじる
・プレーヤーの体の四隅の座標を取得する
・体の四隅が壁などに触れているかどうかを判定する
・プレーヤーの座標を調節する
・もう一度 プレーヤーの体の四隅の座標を取得する
・体が敵キャラと触れているかどうかを判定する
・プレーヤーの座標を調節する
・また プレーヤーの体の四隅の座標を取得する
・プレーヤーがトゲなどのトラップに触れているどうかを判定する
・プレーヤーの座標を調節する

このように無駄に当たり判定が多い設計になっております。
私はこのような設計になったのですが、
他の方はどのようにしているのかが気になっていたわけです。

アバター
h2so5
副管理人
記事: 2212
登録日時: 9年前
住所: 東京
連絡を取る:

Re: アクションゲームの処理の流れについて

#4

投稿記事 by h2so5 » 5年前

プレイヤーと干渉するオブジェクトに対しては、当たり判定を行わないといけないので無駄でもなんでもないと思いますが。

aridai
記事: 34
登録日時: 5年前

Re: アクションゲームの処理の流れについて

#5

投稿記事 by aridai » 5年前

ありがとうございます。
最近もっと短く簡潔にコードを書くようにしようと思い、
気にしすぎていました。

ISLe()

Re: アクションゲームの処理の流れについて

#6

投稿記事 by ISLe() » 5年前

プレイヤーキャラ「が」他のオブジェクトに干渉しているかというふうだと、他のオブジェクトら自身の更新とループ処理がダブるのが無駄かもしれません。

他のオブジェクトのほうが圧倒的に数が多いので、それぞれの更新処理において、プレイヤーキャラとの干渉具合をチェックして、RECT(的な)構造体に補正[必要&限界]距離を蓄積、次のプレイヤーキャラの更新処理で補正、というふうにするとループ処理(というかプログラムの構造そのもの)をすっきりさせることができます。

閉鎖

“C言語何でも質問掲示板” へ戻る