今天我們的講解還是參考自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中也很常用,想想大家完第一視角的遊戲(比如‘我的世界’),無非就是建立一個場景(世界),修改場景中的元素(比如蓋房子),然後移動視角,遮陽在場景中就能呈現我們的世界。
大家也可以通過以上代碼,簡單做幾個小程序,或者採用簡單的形狀,通過代碼畫一幅簡單的畫。