Qt圖形簡單繪製(3)-貪吃蛇小遊戲


今天我們的講解還是參考自DevBean的博客

【非常感謝“豆子”的開源筆記,我已經給了原作者打賞支持,應該算是買了他部分版權。。。】

不過根據項目中大家的需求做一些修改,因爲我們將會主要處理圖片和視頻。

在初步瞭解Qt繪圖相關的基礎知識後,我們將開始學習用Qt做一個貪吃蛇小遊戲。

不過在開始遊戲之前,我們首先要了解Qt中的一個重要框架,叫Graphics View。

Graphics View是一個很常用的框架(貪吃蛇,俄羅斯方塊等用Graphics View都是最好的方法...),甚至Linux的KDE桌面視圖都是用它編寫的。

Graphics View 分爲三個部分:元素(item),場景(scene)以及視圖(view)。

我們舉一個很簡單的例子:我們看到森林裏有很多樹,那麼這個森林就是場景(scene),樹是元素(item),你的眼睛就是視圖(view)。我們可以在場景裏種樹,也就是把item通過add的方法置於場景,遮陽,在我們的視圖(view)裏面就會出現一棵樹了。而實際上,我們也未必會一直站在同一個地方看樹;當我們移動的時候,整個森林(scene)的場景在我們的視圖(view)裏邊變化。而這在程序中對應着二維圖的旋轉,縮放等功能。

我們來看下面一這個代碼:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

      QGraphicsScene scene;
      scene.addRect(0,0,150,150);
      scene.setBackgroundBrush(QBrush(Qt::gray));

      QGraphicsView view(&scene);
      view.rotate(30);
      view.setWindowTitle("Graphics View");
      view.resize(200, 200);
      view.show();
    return a.exec();
}
在這裏,我們構建了一個場景(scene)和一個視圖(view),同時,我們在視圖上做了旋轉,那麼它輸出的結果就是一個旋轉的正方形,如下圖:


這種方式在OpenGL以及其他三維軟件API中也很常用,想想大家完第一視角的遊戲(比如‘我的世界’),無非就是建立一個場景(世界),修改場景中的元素(比如蓋房子),然後移動視角,遮陽在場景中就能呈現我們的世界。

大家也可以通過以上代碼,簡單做幾個小程序,或者採用簡單的形狀,通過代碼畫一幅簡單的畫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章