クラス間の値の受け渡し

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
みぶり

クラス間の値の受け渡し

#1

投稿記事 by みぶり » 9年前

Dxlibを使い、ゲームプログラミングをしているのですが
クラス設計で組んでいるのですが、クラス間での変数の受け渡しの方法がわかりません。

たとえば

クラス プレイヤー{
    int px,py;
}

クラス エネミー{
    int x,y;


クラス プレイヤーと敵との当たり判定{
    ~
}

このように、プレイヤーとエネミーの当たり判定を取りたいときに
エネミークラスのx、y座標の情報

プレイヤーのx、y座標の情報の受け渡しを行うときの方法を教えていただいてもよろしいでしょうか?

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

Re: クラス間の値の受け渡し

#2

投稿記事 by h2so5 » 9年前

一例です。

コード:

#include <cmath>
using namespace std;

struct Position {
	int x, y;	
};

class Object {
public:
	virtual Position Pos() const = 0;
	virtual int Radius() const = 0;
};

class Player : public Object {
public:
	Position Pos() const {
		Position p = {0, 0};
		return p;
	}
	int Radius() const {
		return 5;
	}
};

class Enemy : public Object {
public:
	Position Pos() const {
		Position p = {2, 4};
		return p;
	}
	int Radius() const {
		return 15;
	}
};

class CollisionDetector {
public:
	bool Detect(const Object& obj1, const Object& obj2) {
		double distance = hypot(obj1.Pos().x - obj2.Pos().x, obj1.Pos().y - obj2.Pos().y);
		return (distance < obj1.Radius() + obj2.Radius());
	}
};

int main() {
	CollisionDetector cd;
	Player p;
	Enemy e;
	cd.Detect(p, e);
	return 0;
}

みぶり

Re: クラス間の値の受け渡し

#3

投稿記事 by みぶり » 9年前

この collisionDetector クラスのDetector関数と return分 は何を意味しているのでしょうか?

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

Re: クラス間の値の受け渡し

#4

投稿記事 by h2so5 » 9年前

2つのオブジェクトが衝突しているかどうかを判定します。

閉鎖

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