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

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/z824074989y/article/details/78527413


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

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

展开阅读全文

没有更多推荐了,返回首页