我正在研究一個小型塔防遊戲以學習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