C++でのインターフェースクラスと当たり判定

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

C++でのインターフェースクラスと当たり判定

#1

投稿記事 by 無双贄 » 13年前

現在縦STGを作っているのですが、画像のように出てくる登場人物(プレイヤーとエネミー)をまとめるキャラクタークラスというものを作成したいのです。
C#ではインターフェースクラスがあるのでそれを使用すればいいのですがC++ではそのようなクラスは聞いたことがないので何かインターフェースクラスに代わる
クラスを教えてもらえると嬉しいです。

あと、当たり判定の実装をプレイヤーとエネミーから分離させて審判役をさせたいのですが
この場合どうすればいいのかも教えていただけますでしょうか。
よろしくおねがいします
添付ファイル
無題.png
無題.png (7.13 KiB) 閲覧数: 2598 回

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: C++でのインターフェースクラスと当たり判定

#2

投稿記事 by ISLe » 13年前

インターフェースについては、純粋仮想関数と呼ばれるメンバ関数について調べたら良いと思います。

更新関数を呼び出すためにキャラクターを管理するリストがあると思いますので、当たり判定の審判役はそこに持たせたら良いのではないでしょうか。

無双贄
記事: 15
登録日時: 13年前

Re: C++でのインターフェースクラスと当たり判定

#3

投稿記事 by 無双贄 » 13年前

更新関数を呼び出すためのキャラクターを管理するリストというのは以下のように
抽象キャラクタークラスを持つキャラクター管理クラスを作成して、そこに当たり判定の関数を持たせるという感じでよろしいでしょうか?
添付ファイル
無題.png
無題.png (8.1 KiB) 閲覧数: 2529 回

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: C++でのインターフェースクラスと当たり判定

#4

投稿記事 by ISLe » 13年前

無双贄 さんが書きました:更新関数を呼び出すためのキャラクターを管理するリストというのは以下のように
抽象キャラクタークラスを持つキャラクター管理クラスを作成して、そこに当たり判定の関数を持たせるという感じでよろしいでしょうか?
そういう感じで良いと思います。

当たり判定では、重なったら単に消滅する場合もあるし、消滅せず重なり具合によって特定の方向にはじけ飛ぶようにする場合もあると思います。
当たり判定の結果は双方にフィードバックする必要がありますが、キャラクター自身が当たり判定を行うのは避けて外部からキャラクターの順列組み合わせで当たり判定を行い、結果に応じてキャラクターにリアクションを発動させるようにすると汎用性が高まります。

キャラクター自身に当たり判定と同時にリアクションするように実装してしまうと、たくさんのキャラが同時に重なった場合に対応するときなどで困ることになります。

閉鎖

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