Game Programming using Qt 5 Beginner’s Guide, 2nd Edition - triangle

在这里插入图片描述

main.cpp

#include <QGuiApplication>
#include "simpleglwindow.h"

int main(int argc, char **argv) 
{
    QGuiApplication app(argc, argv);
    SimpleGLWindow window;
    window.resize(600, 400);
    window.show();
    return app.exec();
}

SimpleGLWindow.h

#ifndef SIMPLEGLWINDOW_H
#define SIMPLEGLWINDOW_H

#include <QOpenGLWindow>
#include <QOpenGLFunctions_1_1>
//定义一个 SimpleGLWindow 类作为 QOpenGLWindow 和 QOpenGLFunctions_1_1 的子类
//由于我们不想允许外部访问 OpenGL 函数,因此我们对第二个基数使用受保护的继承
class SimpleGLWindow : public QOpenGLWindow, protected QOpenGLFunctions_1_1
{
public:
    SimpleGLWindow(QWindow *parent = 0);
protected:
    //我们重写QOpenGLWindow 的虚拟 initializeGL() 方法
    
    void initializeGL();
    void paintGL();
};

#endif // SIMPLEGLWINDOW_H

simpleglwindow.cpp

#include "simpleglwindow.h"

SimpleGLWindow::SimpleGLWindow(QWindow *parent) :
    QOpenGLWindow(NoPartialUpdate, parent)
{
    QSurfaceFormat fmt = format();
    fmt.setSamples(16);
    setFormat(fmt);
}

void SimpleGLWindow::initializeGL()
{
    //该方法负责根据当前 OpenGL 上下文的参数设置所有函数(因此,首先使上下文成为当前上下文很重要,幸运的是,这在调用 initializeGL() 之前在幕后为我们完成了)
    if (!initializeOpenGLFunctions()) {
        qFatal("initializeOpenGLFunctions failed");
    }
    //在这个方法中,我们初始化我们的 QOpenGLFunctions_1_1 基类并使用它提供的 glClearColor() 函数
    glClearColor(1, 1, 1, 0);
}

void SimpleGLWindow::paintGL()
{
    //该函数首先清除颜色缓冲区,并将上下文的 OpenGL 视口设置为窗口的大小
    glClear(GL_COLOR_BUFFER_BIT);
    glViewport(0, 0, width(), height());
    //告诉 OpenGL 使用 glBegin() 调用开始使用三角形绘制,并传递 GL_TRIANGLES 作为绘制模式
    glBegin(GL_TRIANGLES);
    {
        //然后,我们传递三个顶点及其颜色以形成一个三角形
        glColor3f(1, 0, 0);
        glVertex3f( 0.0f, 1.0f, 0.0f);
        glColor3f(0, 1, 0);
        glVertex3f( 1.0f,-1.0f, 0.0f);
        glColor3f(0, 0, 1);
        glVertex3f(-1.0f,-1.0f, 0.0f);
    }
    //最后,我们通过调用 glEnd() 通知管道我们已使用当前模式完成绘制
    glEnd();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
A complete guide to designing and building fun games with Qt and Qt Quick 2 using associated toolsets About This Book Learn to create simple 2D to complex 3D graphics and games using all possible tools and widgets available for game development in Qt Understand technologies such as QML, Qt Quick, OpenGL, and Qt Creator, and learn the best practices to use them to design games Learn Qt with the help of many sample games introduced step-by-step in each chapter Who This Book Is For If you want to create great graphical user interfaces and astonishing games with Qt, this book is ideal for you. Any previous knowledge of Qt is not required, however knowledge of C++ is mandatory. What You Will Learn Install Qt on your system Understand the basic concepts of every Qt game and application Develop 2D object-oriented graphics using Qt Graphics View Build multiplayer games or add a chat function to your games with Qt's Network module Script your game with Qt Script Program resolution-independent and fluid UI using QML and Qt Quick Control your game flow as per the sensors of a mobile device See how to test and debug your game easily with Qt Creator and Qt Test In Detail Qt is the leading cross-platform toolkit for all significant desktop, mobile, and embedded platforms and is becoming more popular by the day, especially on mobile and embedded devices. Despite its simplicity, it's a powerful tool that perfectly fits game developers' needs. Using Qt and Qt Quick, it is easy to build fun games or shiny user interfaces. You only need to create your game once and deploy it on all major platforms like iOS, Android, and WinRT without changing a single source file. The book begins with a brief introduction to creating an application and preparing a working environment for both desktop and mobile platforms. It then dives deeper into the basics of creating graphical interfaces and Qt core concepts of data processing and display before you try creating a game. As you progress through the chapters, you'll learn to enrich your games by implementing network connectivity and employing scripting. We then delve into Qt Quick, OpenGL, and various other tools to add game logic, design animation, add game physics, and build astonishing UI for the games. Towards the final chapters, you'll learn to exploit mobile device features such as accelerators and sensors to build engaging user experiences. If you are planning to learn about Qt and its associated toolsets to build apps and games, this book is a must have. Style and approach This is an easy-to-follow, example-based, comprehensive introduction to all the major features in Qt. The content of each chapter is explained and organized around one or multiple simple game examples to learn Qt in a fun way. Table of Contents Chapter 1: Introduction to Qt Chapter 2: Installation Chapter 3: Qt GUI Programming Chapter 4: Qt Core Essentials Chapter 5: Graphics with Qt Chapter 6: Graphics View Chapter 7: Networking Chapter 8: Scripting Chapter 9: Qt Quick Basics Chapter 10: Qt Quick Appendix: Pop Quiz Answers
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值