您的位置:首页 > 编程语言 > Qt开发

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

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

大家也可以通过以上代码,简单做几个小程序,或者采用简单的形状,通过代码画一幅简单的画。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息