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);
}
您是否有解决此问题的线索?
谢谢。
没有找到相关结果
已邀请:
1 个回复
缝皋
这将要求boundingRect的宽度和高度至少为9。 同样,使用内部项目坐标系指定boundingRect。您正在从(-3,-3)绘制到boundingRect之外的(6,6)。