2008年8月25日 星期一

QT - region

有空再寫~

以下程式碼節錄至QT - chap 11

void CannonField::moveShot()
{
  QRegion r( shotRect() ); // 建立一個炮彈的region
  timerCount++;

  QRect shotR = shotRect();

  if ( shotR.x() > width() || shotR.y() > height() )
    autoShootTimer->stop();
  else
    r = r.unite( QRegion( shotR ) ); // 取聯集
  repaint( r );
}


首先我們使用QRegion來保留舊的shotRect()。QRegion可以保留任何種類的區域(我想也可以包含圖片吧),並且我們可以用它來簡化繪畫過程。

而之後,我們會針對兩個region來分析是否有碰撞到。

沒有留言: