0

首先,请原谅我糟糕的英语。

好吧,我正在尝试使用 Allegro 的库在 C++ 中制作一个简单的游戏,但我不知道如何创建一个可以从所有类中访问的对象数组。

更准确地说,我在主体类的 main() 函数中有这段代码:

CBody **objs = new CBody*[n];
objs[0] = new CBall(320,240);
objs[1] = new CRing(500,120);

然后我需要在 CBall 的类中创建一个函数来检查与 CRing 实例的冲突。就像是:

bool CBall::CheckRingCol(){
  return (colCircle(myX,myY,myRadious,objs[1]->myX,objs[1]->myY,objs[1]->myRadious));
}

有任何想法吗?

谢谢你们,伙计们!

4

1 回答 1

2

首先,不要疯狂使用双指针。你不需要它。

你有一个数组CBody,大概是一个基类(有助于发布更多代码)

#include <memory>
typedef shared_ptr<CBody> spBody;

vector<spBody> bodies;
bodies.emplace_back( spBody(new CBall(320, 140)) ); // don't need to bother about delete when you use a shared_ptr
bodies.emplace_back( spBody(new CRing(500, 120)) );

谁叫球环碰撞?

您可以将环作为参数传递给bool CBall::CheckRingCol(const CRing*) const.

于 2013-10-18T18:07:20.257 回答