QGraphicsItem绘图问题

| 我正在研究一款小型塔防游戏,以学习Qt。我正在使用QGraphicsScene来容纳游戏的所有对象。为了使它们移动,我没有使用Animation框架,而是调用了Advance()方法和QTimer。 我想让我的弹丸击中敌人时爆炸。问题是,当我尝试绘制椭圆以模拟爆炸时,无法正确绘制它。 您可以在此视频中看到问题。 我尝试使用z-indexes,但没有任何改变。 这是我用来绘制弹丸的代码:
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);
}
您是否有解决此问题的线索? 谢谢。     
已邀请:
假设cnt为3。 您正在用绘制椭圆
painter->drawEllipse(-3,-3,6,6)
这将要求boundingRect的宽度和高度至少为9。 同样,使用内部项目坐标系指定boundingRect。您正在从(-3,-3)绘制到boundingRect之外的(6,6)。     

要回复问题请先登录注册