我正在尝试在Qt
. 我需要弄清楚QGraphicsItem
我的球与哪种类型的球相撞。例如,如果我的球撞到墙上,球就会弹开,如果它撞到砖块,它必须弹开并破坏砖块。为了找出QGraphicsItem
它是什么类型,我认为最好的方法可能是覆盖QGraphicsItem::type()
(如果这不是正确的方法,请告诉我!)。
在下面的代码中,brick.h
我将“Brick”的类型设置为 3。现在,值 3 看起来很难跟踪。我宁愿用“#define”声明一些东西
#include <QGraphicsItem>
//should this #define be here?
//#define BRICK_SPRITE 3
class Brick : public QGraphicsItem
{
public:
Brick(const QPixmap& p, QGraphicsScene *scene = 0);
virtual QRectF boundingRect() const;
virtual void paint( QPainter *painter,
const QStyleOptionGraphicsItem *option,
QWidget *widget );
QPainterPath shape() const;
enum { Type = 3 }; //enum {Type = BRICK_SPRITE}
int type() const { return Type; }
private:
QPixmap pixmap;
};
在哪里放置语句 '#define BRICK_SPRITE 3' 的好位置?我在项目中有几个其他文件。我应该将所有定义放在单独的头文件中吗?