我正在研究一个小型塔防游戏以学习Qt。我正在使用QGraphicsScene来保存游戏的所有对象。为了让它们移动,我没有使用动画框架,但我正在调用advance()方法和QTimer。QGraphicsItem绘图问题
我想让我的射弹在击中敌人时发生爆炸。问题是,当我试图绘制一个椭圆来模拟爆炸时,它无法正确绘制。
您可以在this video中看到问题。
我试图玩Z指标,但它没有改变任何东西。
这是我用来绘制弹丸代码:
void Projectile::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
if(!isExploding) {
painter->drawPixmap(boundingRect().toRect(), image);
} else {
if(cnt < 50) {
painter->setBrush(QBrush(explosion));
painter->drawEllipse(-cnt, -cnt, 2.0*cnt, 2.0*cnt);
cnt++;
} else {
this->isFinished = 1;
}
}
}
QRectF Projectile::boundingRect() const
{
// Taille de l'image de l'insecte
return QRectF(0, 0, 6, 6);
}
你有关于如何解决这个问题的任何线索?
谢谢。
很难说没有看到你的代码;但在我的经验中,工件和怪异的剪裁可能是由于错误地指定了图形项目的boundingRect而导致的。 – grayDad 2011-05-18 17:20:32