当您说您需要获得国王时,您如何在程序中区分白色国王和黑色国王?
如果你需要一个 Pawn,你怎么知道是哪一个?任何人 ?您可以在您的项目中找到的第一个?
我没有想太多,但也许你可以做的是使用 QMap。键将是不同部分的枚举,值将是指向相关的指针QGraphicsItem
。像这样的东西:
enum Piece_e {
KING,
QUEEN,
ROOK1,
ROOK2,
...
PAWN1,
PAWN2,
...
};
QMap<Piece_e, QGraphicsPixmapItem*> WhitePiecesItems;
QMap<Piece_e, QGraphicsPixmapItem*> BlackPiecesItems;
当您创建场景并实例化您的作品时,您将填充地图:
...
WhitePiecesItem[KING] = new QGraphicsPixmapItem(QPixmap("whiteking_pic"));
WhitePiecesItem[PAWN1] = new QGraphicsPixmapItem(QPixmap("whitepawn_pic"));
...
BlackPiecesItem[QUEEN] = new QGraphicsPixmapItem(QPixmap("whitequeen_pic"));
BlackPiecesItem[PAWN1] = new QGraphicsPixmapItem(QPixmap("whitepawn_pic"));
...
当您需要找到对应于白色国王的对象时,您可以执行以下操作:
QGraphicsPixmapItem* pItem = WhitePiecesItem[KING];