Qt图形简单绘制(3)-贪吃蛇小游戏

来源:互联网 发布:淘宝刷客兼职平台 qt 编辑:程序博客网 时间:2024/04/29 04:25


今天我们的讲解还是参考自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中也很常用,想想大家完第一视角的游戏(比如‘我的世界’),无非就是建立一个场景(世界),修改场景中的元素(比如盖房子),然后移动视角,遮阳在场景中就能呈现我们的世界。

大家也可以通过以上代码,简单做几个小程序,或者采用简单的形状,通过代码画一幅简单的画。

原创粉丝点击