首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QGraphicsItem绘图问题

QGraphicsItem绘图问题
EN

Stack Overflow用户
提问于 2011-05-19 00:31:35
回答 1查看 1.3K关注 0票数 3

为了学习Qt,我正在开发一个小的塔防游戏。我正在使用一个QGraphicsScene来保存游戏的所有对象。为了让它们移动,我没有使用动画框架,但我调用了带有QTimer的advance()方法。

我想让我的投射物在击中敌人时爆炸。问题是,当我试图绘制一个椭圆来模拟爆炸时,它不能正确绘制。

你可以在this video中看到这个问题。

我尝试使用z索引,但它没有改变任何东西。

下面是我用来绘制投射体的代码:

代码语言:javascript
复制
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);
}

你有任何关于如何解决这个问题的线索吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-19 02:06:21

假设cnt为3。您正在绘制一个椭圆

代码语言:javascript
复制
painter->drawEllipse(-3,-3,6,6)

这将要求boundingRect的宽度和高度至少为9。

boundingRect也是使用内部项目坐标系指定的。您正在从boundingRect之外的(-3,-3)到(6,6)进行绘图。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6047985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档