:3.182MB : :1 :2022-10-13 15:51:28
game programming using qt5 2nd代码如果开发者对于本文件有需要的可以参考。
game programming using qt5 2nd源码
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. It's a powerful tool that perfectly fits the needs of game developers. You only need to create your game once and deploy it on all major platforms such as iOS, Android, and WinRT, without changing a single source file. This book will help you learn the nitty-gritty of Qt and will equip you with the necessary toolsets to build apps and games.
The book begins with a brief introduction to creating an application and preparing a working environment for both desktop and mobile platforms. You will learn how to use built-in Qt widgets and Form Editor to create a classic GUI application. You'll then explore the basics of creating graphical interfaces and Qt's core concepts (data processing and display) that will help you create high-performance games.
As you progress through the chapters, you'll learn to enrich your games by implementing network connectivity and employing scripting. You will learn about Qt's capabilities for handling strings and files, data storage, and serialization.
Moving on, you will also learn about the new Qt Gamepad module and how to add it in your game. You'll then delve into OpenGL, and how it can be used in Qt applications to implement hardware-accelerated 2D and 3D graphics. You will then explore various facets of Qt Quick: how it can be used in games to add game logic and design animations, add game physics, and build astonishing UIs for your games.
By the end of this book, you will have developed the skillset to develop interesting games with Qt.
.
├── Game-Programming-Using-Qt-5-Beginners-Guide-Second-Edition-master
│ ├── Chapter03
│ │ └── Qt GUI Programming
│ │ └── tictactoe
│ │ ├── tictactoe ver1
│ │ │ ├── main.cpp
│ │ │ ├── mainwindow.cpp
│ │ │ ├── mainwindow.h
│ │ │ ├── mainwindow.ui
│ │ │ └── tictactoe ver1.pro
│ │ ├── tictactoe ver2
│ │ │ ├── main.cpp
│ │ │ ├── mainwindow.cpp
│ │ │ ├── mainwindow.h
│ │ │ ├── mainwindow.ui
│ │ │ └── tictactoe ver2.pro
│ │ ├── tictactoe ver3
│ │ │ ├── main.cpp
│ │ │ ├── mainwindow.cpp
│ │ │ ├── mainwindow.h
│ │ │ ├── mainwindow.ui
│ │ │ ├── tictactoe ver3.pro
│ │ │ ├── tictactoewidget.cpp
│ │ │ └── tictactoewidget.h
│ │ ├── tictactoe ver4
│ │ │ ├── main.cpp
│ │ │ ├── mainwindow.cpp
│ │ │ ├── mainwindow.h
│ │ │ ├── mainwindow.ui
│ │ │ ├── tictactoe ver4.pro
│ │ │ ├── tictactoewidget.cpp
│ │ │ └── tictactoewidget.h
│ │ ├── tictactoe ver5
│ │ │ ├── main.cpp
│ │ │ ├── mainwindow.cpp
│ │ │ ├── mainwindow.h
│ │ │ ├── mainwindow.ui
│ │ │ ├── tictactoe ver5.pro
│ │ │ ├── tictactoewidget.cpp
│ │ │ └── tictactoewidget.h
│ │ ├── tictactoe ver6
│ │ │ ├── configurationdialog.cpp
│ │ │ ├── configurationdialog.h
│ │ │ ├── configurationdialog.ui
│ │ │ ├── main.cpp
│ │ │ ├── mainwindow.cpp
│ │ │ ├── mainwindow.h
│ │ │ ├── mainwindow.ui
│ │ │ ├── tictactoe ver6.pro
│ │ │ ├── tictactoewidget.cpp
│ │ │ └── tictactoewidget.h
│ │ └── tictactoe ver7
│ │ ├── configurationdialog.cpp
│ │ ├── configurationdialog.h
│ │ ├── configurationdialog.ui
│ │ ├── icons
│ │ │ ├── application-exit.png
│ │ │ └── newgame.png
│ │ ├── main.cpp
│ │ ├── mainwindow.cpp
│ │ ├── mainwindow.h
│ │ ├── mainwindow.ui
│ │ ├── resources.qrc
│ │ ├── tictactoe ver7.pro
│ │ ├── tictactoewidget.cpp
│ │ └── tictactoewidget.h
│ ├── Chapter04
│ │ └── Graphics View
│ │ ├── 1. First demo
│ │ │ ├── graphics_view_demo.pro
│ │ │ └── main.cpp
│ │ ├── 2. Transformation origin
│ │ │ ├── graphics_view_demo.pro
│ │ │ └── main.cpp
│ │ ├── 3. Custom rectangle
│ │ │ ├── graphics_view_demo.pro
│ │ │ └── main.cpp
│ │ ├── 4. Custom rectangle with antialiasing
│ │ │ ├── graphics_view_demo.pro
│ │ │ └── main.cpp
│ │ ├── 5. Painter path
│ │ │ ├── graphics_view_demo.pro
│ │ │ └── main.cpp
│ │ ├── 6. Z values
│ │ │ ├── graphics_view_demo.pro
│ │ │ └── main.cpp
│ │ ├── 7. Custom rectangle with numbers
│ │ │ ├── graphics_view_demo.pro
│ │ │ └── main.cpp
│ │ ├── 8. Custom rectangle with numbers - alternative
│ │ │ ├── graphics_view_demo.pro
│ │ │ └── main.cpp
│ │ └── 9. Sine graph
│ │ ├── main.cpp
│ │ ├── sine_graph.pro
│ │ ├── sineitem.cpp
│ │ ├── sineitem.h
│ │ ├── view.cpp
│ │ └── view.h
│ ├── Chapter05
│ │ └── Animations in Graphics View
│ │ └── jrgame
│ │ ├── backgrounditem.cpp
│ │ ├── backgrounditem.h
│ │ ├── bushes.svg
│ │ ├── coin.cpp
│ │ ├── coin.h
│ │ ├── elephant.png
│ │ ├── elephant.svg
│ │ ├── grass.png
│ │ ├── ground.png
│ │ ├── ground.svg
│ │ ├── jrgame.pro
│ │ ├── jrgame.qrc
│ │ ├── main.cpp
│ │ ├── myscene.cpp
│ │ ├── myscene.h
│ │ ├── player.cpp
│ │ ├── player.h
│ │ ├── sky.png
│ │ ├── sky.svg
│ │ ├── trees.png
│ │ └── trees.svg
│ ├── Chapter06
│ │ └── Qt Core Essentials
│ │ ├── caesarcipherdevice
│ │ │ ├── caesarcipherdevice.cpp
│ │ │ ├── caesarcipherdevice.h
│ │ │ ├── caesarcipherdevice.pro
│ │ │ └── main.cpp
│ │ ├── json_serializer
│ │ │ ├── main.cpp
│ │ │ ├── playerinfo.cpp
│ │ │ ├── playerinfo.h
│ │ │ ├── playerinfojson.cpp
│ │ │ ├── playerinfojson.h
│ │ │ └── serializer.pro
│ │ ├── regularexpression
│ │ │ ├── main.cpp
│ │ │ └── regularexpression.pro
│ │ ├── serialization
│ │ │ ├── main.cpp
│ │ │ ├── player.cpp
│ │ │ ├── player.h
│ │ │ └── serialization.pro
│ │ └── xmlreader
│ │ ├── main.cpp
│ │ ├── playerinfo.cpp
│ │ ├── playerinfo.h
│ │ ├── playerinfo.xml
│ │ ├── playerinforeader.cpp
│ │ ├── playerinforeader.h
│ │ ├── resources.qrc
│ │ └── xmlreader.pro
│ ├── Chapter07
│ │ └── Networking
│ │ ├── FileDownload
│ │ │ ├── FileDownload.pro
│ │ │ ├── filedownload.cpp
│ │ │ ├── filedownload.h
│ │ │ └── main.cpp
│ │ ├── Navigation
│ │ │ ├── Navigation.pro
│ │ │ ├── main.cpp
│ │ │ ├── mainwindow.cpp
│ │ │ ├── mainwindow.h
│ │ │ └── mainwindow.ui
│ │ ├── ReplyFinished
│ │ │ ├── ReplyFinished.pro
│ │ │ ├── main.cpp
│ │ │ ├── widget.cpp
│ │ │ ├── widget.h
│ │ │ └── widget.ui
│ │ ├── TcpClient
│ │ │ ├── TcpClient.pro
│ │ │ ├── main.cpp
│ │ │ ├── tcpclient.cpp
│ │ │ ├── tcpclient.h
│ │ │ └── tcpclient.ui
│ │ └── TcpServer
│ │ ├── TcpServer.pro
│ │ ├── main.cpp
│ │ ├── tcpserver.cpp
│ │ ├── tcpserver.h
│ │ └── tcpserver.ui
│ ├── Chapter08
│ │ └── Custom Widgets
│ │ ├── chess
│ │ │ ├── ver1
│ │ │ │ ├── chess_ver1.pro
│ │ │ │ ├── chessalgorithm.cpp
│ │ │ │ ├── chessalgorithm.h
│ │ │ │ ├── chessboard.cpp
│ │ │ │ ├── chessboard.h
│ │ │ │ ├── chessview.cpp
│ │ │ │ ├── chessview.h
│ │ │ │ ├── main.cpp
│ │ │ │ ├── mainwindow.cpp
│ │ │ │ ├── mainwindow.h
│ │ │ │ └── mainwindow.ui
│ │ │ ├── ver2
│ │ │ │ ├── chess_ver2.pro
│ │ │ │ ├── chessalgorithm.cpp
│ │ │ │ ├── chessalgorithm.h
│ │ │ │ ├── chessboard.cpp
│ │ │ │ ├── chessboard.h
│ │ │ │ ├── chessview.cpp
│ │ │ │ ├── chessview.h
│ │ │ │ ├── main.cpp
│ │ │ │ ├── mainwindow.cpp
│ │ │ │ ├── mainwindow.h
│ │ │ │ └── mainwindow.ui
│ │ │ ├── ver3
│ │ │ │ ├── chess_ver3.pro
│ │ │ │ ├── chessalgorithm.cpp
│ │ │ │ ├── chessalgorithm.h
│ │ │ │ ├── chessboard.cpp
│ │ │ │ ├── chessboard.h
│ │ │ │ ├── chessview.cpp
│ │ │ │ ├── chessview.h
│ │ │ │ ├── main.cpp
│ │ │ │ ├── mainwindow.cpp
│ │ │ │ ├── mainwindow.h
│ │ │ │ └── mainwindow.ui
│ │ │ ├── ver4
│ │ │ │ ├── chess_ver4.pro
│ │ │ │ ├── chessalgorithm.cpp
│ │ │ │ ├── chessalgorithm.h
│ │ │ │ ├── chessboard.cpp
│ │ │ │ ├── chessboard.h
│ │ │ │ ├── chessview.cpp
│ │ │ │ ├── chessview.h
│ │ │ │ ├── main.cpp
│ │ │ │ ├── mainwindow.cpp
│ │ │ │ ├── mainwindow.h
│ │ │ │ ├── mainwindow.ui
│ │ │ │ ├── pieces
│ │ │ │ │ ├── Chess_bdt45.svg
│ │ │ │ │ ├── Chess_blt45.svg
│ │ │ │ │ ├── Chess_kdt45.svg
│ │ │ │ │ ├── Chess_klt45.svg
│ │ │ │ │ ├── Chess_ndt45.svg
│ │ │ │ │ ├── Chess_nlt45.svg
│ │ │ │ │ ├── Chess_pdt45.svg
│ │ │ │ │ ├── Chess_plt45.svg
│ │ │ │ │ ├── Chess_qdt45.svg
│ │ │ │ │ ├── Chess_qlt45.svg
│ │ │ │ │ ├── Chess_rdt45.svg
│ │ │ │ │ ├── Chess_rlt45.svg
│ │ │ │ │ └── LICENSE.txt
│ │ │ │ └── pieces.qrc
│ │ │ ├── ver5
│ │ │ │ ├── chess_ver5.pro
│ │ │ │ ├── chessalgorithm.cpp
│ │ │ │ ├── chessalgorithm.h
│ │ │ │ ├── chessboard.cpp
│ │ │ │ ├── chessboard.h
│ │ │ │ ├── chessview.cpp
│ │ │ │ ├── chessview.h
│ │ │ │ ├── main.cpp
│ │ │ │ ├── mainwindow.cpp
│ │ │ │ ├── mainwindow.h
│ │ │ │ ├── mainwindow.ui
│ │ │ │ ├── pieces
│ │ │ │ │ ├── Chess_bdt45.svg
│ │ │ │ │ ├── Chess_blt45.svg
│ │ │ │ │ ├── Chess_kdt45.svg
│ │ │ │ │ ├── Chess_klt45.svg
│ │ │ │ │ ├── Chess_ndt45.svg
│ │ │ │ │ ├── Chess_nlt45.svg
│ │ │ │ │ ├── Chess_pdt45.svg
│ │ │ │ │ ├── Chess_plt45.svg
│ │ │ │ │ ├── Chess_qdt45.svg
│ │ │ │ │ ├── Chess_qlt45.svg
│ │ │ │ │ ├── Chess_rdt45.svg
│ │ │ │ │ ├── Chess_rlt45.svg
│ │ │ │ │ └── LICENSE.txt
│ │ │ │ └── pieces.qrc
│ │ │ └── ver6
│ │ │ ├── chess_ver6.pro
│ │ │ ├── chessalgorithm.cpp
│ │ │ ├── chessalgorithm.h
│ │ │ ├── chessboard.cpp
│ │ │ ├── chessboard.h
│ │ │ ├── chessview.cpp
│ │ │ ├── chessview.h
│ │ │ ├── foxandhounds.cpp
│ │ │ ├── foxandhounds.h
│ │ │ ├── main.cpp
│ │ │ ├── mainwindow.cpp
│ │ │ ├── mainwindow.h
│ │ │ ├── mainwindow.ui
│ │ │ ├── pieces
│ │ │ │ ├── Chess_bdt45.svg
│ │ │ │ ├── Chess_blt45.svg
│ │ │ │ ├── Chess_kdt45.svg
│ │ │ │ ├── Chess_klt45.svg
│ │ │ │ ├── Chess_ndt45.svg
│ │ │ │ ├── Chess_nlt45.svg
│ │ │ │ ├── Chess_pdt45.svg
│ │ │ │ ├── Chess_plt45.svg
│ │ │ │ ├── Chess_qdt45.svg
│ │ │ │ ├── Chess_qlt45.svg
│ │ │ │ ├── Chess_rdt45.svg
│ │ │ │ ├── Chess_rlt45.svg
│ │ │ │ └── LICENSE.txt
│ │ │ └── pieces.qrc
│ │ └── painting
│ │ ├── ver1
│ │ │ ├── customwidget_ver1.pro
│ │ │ ├── main.cpp
│ │ │ ├── widget.cpp
│ │ │ └── widget.h
│ │ ├── ver2
│ │ │ ├── customwidget_ver2.pro
│ │ │ ├── main.cpp
│ │ │ ├── widget.cpp
│ │ │ └── widget.h
│ │ ├── ver3
│ │ │ ├── customwidget_ver3.pro
│ │ │ ├── main.cpp
│ │ │ ├── widget.cpp
│ │ │ └── widget.h
│ │ ├── ver4
│ │ │ ├── customwidget_ver4.pro
│ │ │ ├── main.cpp
│ │ │ ├── widget.cpp
│ │ │ └── widget.h
│ │ └── ver5
│ │ ├── customwidget_ver5.pro
│ │ ├── main.cpp
│ │ ├── widget.cpp
│ │ └── widget.h
│ ├── Chapter09
│ │ └── OpenGL and Vulkan in Qt applications
│ │ ├── 1. triangle
│ │ │ ├── main.cpp
│ │ │ ├── simpleglwindow.cpp
│ │ │ ├── simpleglwindow.h
│ │ │ └── triangle.pro
│ │ ├── 2. scene
│ │ │ ├── abstractglscene.cpp
│ │ │ ├── abstractglscene.h
│ │ │ ├── main.cpp
│ │ │ ├── scene.pro
│ │ │ ├── sceneglwindow.cpp
│ │ │ └── sceneglwindow.h
│ │ ├── 3. cube
│ │ │ ├── abstractglscene.cpp
│ │ │ ├── abstractglscene.h
│ │ │ ├── cube.pro
│ │ │ ├── cubeglscene.cpp
│ │ │ ├── cubeglscene.h
│ │ │ ├── main.cpp
│ │ │ ├── sceneglwindow.cpp
│ │ │ ├── sceneglwindow.h
│ │ │ ├── texture.jpg
│ │ │ └── texture.qrc
│ │ ├── 3a. animated cube
│ │ │ ├── abstractglscene.cpp
│ │ │ ├── abstractglscene.h
│ │ │ ├── animated_cube.pro
│ │ │ ├── cubeglscene.cpp
│ │ │ ├── cubeglscene.h
│ │ │ ├── main.cpp
│ │ │ ├── sceneglwindow.cpp
│ │ │ ├── sceneglwindow.h
│ │ │ ├── texture.jpg
│ │ │ └── texture.qrc
│ │ ├── 4. shaders
│ │ │ ├── abstractglscene.cpp
│ │ │ ├── abstractglscene.h
│ │ │ ├── main.cpp
│ │ │ ├── monkey.ply
│ │ │ ├── phong.frag
│ │ │ ├── phong.vert
│ │ │ ├── plyreader.cpp
│ │ │ ├── plyreader.h
│ │ │ ├── resources.qrc
│ │ │ ├── sceneglwindow.cpp
│ │ │ ├── sceneglwindow.h
│ │ │ ├── shaderglscene.cpp
│ │ │ ├── shaderglscene.h
│ │ │ └── shaders.pro
│ │ ├── 4a. shaders_and_buffers
│ │ │ ├── abstractglscene.cpp
│ │ │ ├── abstractglscene.h
│ │ │ ├── main.cpp
│ │ │ ├── monkey.ply
│ │ │ ├── phong.frag
│ │ │ ├── phong.vert
│ │ │ ├── plyreader.cpp
│ │ │ ├── plyreader.h
│ │ │ ├── resources.qrc
│ │ │ ├── sceneglwindow.cpp
│ │ │ ├── sceneglwindow.h
│ │ │ ├── shaderglscene.cpp
│ │ │ ├── shaderglscene.h
│ │ │ └── shaders_and_buffers.pro
│ │ ├── 5. vulkan_background
│ │ │ ├── main.cpp
│ │ │ ├── myrenderer.cpp
│ │ │ ├── myrenderer.h
│ │ │ ├── mywindow.cpp
│ │ │ ├── mywindow.h
│ │ │ └── vulkan_background.pro
│ │ └── 6. opengl with widgets
│ │ ├── abstractglscene.cpp
│ │ ├── abstractglscene.h
│ │ ├── cubeglscene.cpp
│ │ ├── cubeglscene.h
│ │ ├── main.cpp
│ │ ├── opengl_with_widgets.pro
│ │ ├── sceneglwindow.cpp
│ │ ├── sceneglwindow.h
│ │ ├── texture.jpg
│ │ └── texture.qrc
│ ├── Chapter10
│ │ └── Scripting
│ │ ├── codeeditor
│ │ │ ├── codeeditor.pro
│ │ │ ├── main.cpp
│ │ │ ├── mainwindow.cpp
│ │ │ ├── mainwindow.h
│ │ │ └── mainwindow.ui
│ │ ├── qtpython
│ │ │ ├── qtpython_ver1
│ │ │ │ ├── main.cpp
│ │ │ │ ├── qtpython.cpp
│ │ │ │ ├── qtpython.h
│ │ │ │ └── qtpython.pro
│ │ │ ├── qtpython_ver2
│ │ │ │ ├── main.cpp
│ │ │ │ ├── qtpython.cpp
│ │ │ │ ├── qtpython.h
│ │ │ │ ├── qtpython.pro
│ │ │ │ ├── qtpythonvalue.cpp
│ │ │ │ └── qtpythonvalue.h
│ │ │ └── qtpython_ver3
│ │ │ ├── main.cpp
│ │ │ ├── qtpython.cpp
│ │ │ ├── qtpython.h
│ │ │ ├── qtpython.pro
│ │ │ ├── qtpythonvalue.cpp
│ │ │ └── qtpythonvalue.h
│ │ ├── scriptable_button
│ │ │ ├── main.cpp
│ │ │ └── scriptable_button.pro
│ │ └── scripted_game
│ │ ├── entity.cpp
│ │ ├── entity.h
│ │ ├── entityproxy.cpp
│ │ ├── entityproxy.h
│ │ ├── main.cpp
│ │ ├── resources.qrc
│ │ ├── scene.cpp
│ │ ├── scene.h
│ │ ├── sceneproxy.cpp
│ │ ├── sceneproxy.h
│ │ ├── scripted_game.pro
│ │ └── scripts
│ │ ├── 1.js
│ │ └── 2.js
│ ├── Chapter11
│ │ └── Introduction to Qt Quick
│ │ └── calculator
│ │ ├── ver1
│ │ │ ├── calculator_ver1.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── ver2
│ │ │ ├── Calculator.qml
│ │ │ ├── CalculatorForm.ui.qml
│ │ │ ├── calculator_ver2.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── ver3
│ │ │ ├── Calculator.qml
│ │ │ ├── CalculatorForm.ui.qml
│ │ │ ├── advancedcalculator.cpp
│ │ │ ├── advancedcalculator.h
│ │ │ ├── calculator_ver3.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ └── ver4
│ │ ├── Calculator.qml
│ │ ├── CalculatorForm.ui.qml
│ │ ├── advancedcalculator.cpp
│ │ ├── advancedcalculator.h
│ │ ├── calculator_ver4.pro
│ │ ├── main.cpp
│ │ ├── main.qml
│ │ └── qml.qrc
│ ├── Chapter12
│ │ └── Customization in Qt Quick
│ │ ├── canvas
│ │ │ ├── canvas.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── clock
│ │ │ ├── Clock.qml
│ │ │ ├── Needle.qml
│ │ │ ├── clock.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── custom_button
│ │ │ ├── Button.qml
│ │ │ ├── custom_button.pro
│ │ │ ├── edit-undo.png
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── dashboard
│ │ │ ├── Label.qml
│ │ │ ├── Needle.qml
│ │ │ ├── carinfo.cpp
│ │ │ ├── carinfo.h
│ │ │ ├── carinfoengine.cpp
│ │ │ ├── carinfoengine.h
│ │ │ ├── carinfoproxy.cpp
│ │ │ ├── carinfoproxy.h
│ │ │ ├── dashboard.png
│ │ │ ├── dashboard.pro
│ │ │ ├── form.ui
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── resources.qrc
│ │ ├── drag
│ │ │ ├── drag.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── load_component
│ │ │ ├── Circle.qml
│ │ │ ├── load_component.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── pinch
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── pinch.pro
│ │ │ ├── qml.qrc
│ │ │ └── wilanow.jpg
│ │ ├── positioning
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── positioning.pro
│ │ │ └── qml.qrc
│ │ └── tilt_sensor
│ │ ├── main.cpp
│ │ ├── main.qml
│ │ ├── qml.qrc
│ │ └── tilt_sensor.pro
│ ├── Chapter13
│ │ └── Animations in Qt Quick games
│ │ ├── actiongame
│ │ │ ├── actiongame_ver01
│ │ │ │ ├── actiongame_ver01.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver02
│ │ │ │ ├── actiongame_ver02.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver03
│ │ │ │ ├── actiongame_ver03.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver04
│ │ │ │ ├── actiongame_ver04.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver05
│ │ │ │ ├── actiongame_ver05.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver06
│ │ │ │ ├── actiongame_ver06.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver07
│ │ │ │ ├── Player.qml
│ │ │ │ ├── actiongame_ver07.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── elephant.png
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver08
│ │ │ │ ├── Player.qml
│ │ │ │ ├── actiongame_ver08.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── elephant.png
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver09
│ │ │ │ ├── Coin.qml
│ │ │ │ ├── Player.qml
│ │ │ │ ├── actiongame_ver09.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── elephant.png
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver10
│ │ │ │ ├── Coin.qml
│ │ │ │ ├── Player.qml
│ │ │ │ ├── actiongame_ver10.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── elephant.png
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ ├── trees.png
│ │ │ │ │ ├── walking_1.png
│ │ │ │ │ ├── walking_2.png
│ │ │ │ │ ├── walking_3.png
│ │ │ │ │ ├── walking_4.png
│ │ │ │ │ ├── walking_5.png
│ │ │ │ │ ├── walking_6.png
│ │ │ │ │ └── walking_7.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver11
│ │ │ │ ├── Coin.qml
│ │ │ │ ├── Player.qml
│ │ │ │ ├── actiongame_ver11.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── elephant.png
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver12
│ │ │ │ ├── Coin.qml
│ │ │ │ ├── Player.qml
│ │ │ │ ├── actiongame_ver12.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── elephant.png
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ ├── actiongame_ver13
│ │ │ │ ├── Coin.qml
│ │ │ │ ├── ParallaxLayer.qml
│ │ │ │ ├── ParallaxScene.qml
│ │ │ │ ├── Player.qml
│ │ │ │ ├── actiongame_ver13.qmlproject
│ │ │ │ ├── images
│ │ │ │ │ ├── elephant.png
│ │ │ │ │ ├── grass.png
│ │ │ │ │ ├── sky.png
│ │ │ │ │ ├── sprite.png
│ │ │ │ │ └── trees.png
│ │ │ │ └── main.qml
│ │ │ └── actiongame_ver14
│ │ │ ├── Coin.qml
│ │ │ ├── Coin.qmlc
│ │ │ ├── ParallaxLayer.qml
│ │ │ ├── ParallaxLayer.qmlc
│ │ │ ├── ParallaxScene.qml
│ │ │ ├── ParallaxScene.qmlc
│ │ │ ├── Player.qml
│ │ │ ├── Player.qmlc
│ │ │ ├── actiongame_ver14.qmlproject
│ │ │ ├── coins.js
│ │ │ ├── coins.jsc
│ │ │ ├── collisions.js
│ │ │ ├── collisions.jsc
│ │ │ ├── images
│ │ │ │ ├── elephant.png
│ │ │ │ ├── grass.png
│ │ │ │ ├── sky.png
│ │ │ │ ├── sprite.png
│ │ │ │ └── trees.png
│ │ │ ├── main.qml
│ │ │ └── main.qmlc
│ │ └── dashboard
│ │ ├── Label.qml
│ │ ├── Needle.qml
│ │ ├── carinfo.cpp
│ │ ├── carinfo.h
│ │ ├── carinfoengine.cpp
│ │ ├── carinfoengine.h
│ │ ├── carinfoproxy.cpp
│ │ ├── carinfoproxy.h
│ │ ├── dashboard.png
│ │ ├── dashboard.pro
│ │ ├── form.ui
│ │ ├── main.cpp
│ │ ├── main.qml
│ │ └── resources.qrc
│ ├── Chapter14
│ │ └── Advanced visual effects in Qt Quick
│ │ ├── actiongame ver15
│ │ │ ├── Coin.qml
│ │ │ ├── Coin.qmlc
│ │ │ ├── ParallaxLayer.qml
│ │ │ ├── ParallaxLayer.qmlc
│ │ │ ├── ParallaxScene.qml
│ │ │ ├── ParallaxScene.qmlc
│ │ │ ├── Player.qml
│ │ │ ├── Player.qmlc
│ │ │ ├── actiongame.qmlproject
│ │ │ ├── coins.js
│ │ │ ├── coins.jsc
│ │ │ ├── collisions.js
│ │ │ ├── collisions.jsc
│ │ │ ├── images
│ │ │ │ ├── elephant.png
│ │ │ │ ├── grass.png
│ │ │ │ ├── particle.png
│ │ │ │ ├── sky.png
│ │ │ │ ├── sprite.png
│ │ │ │ └── trees.png
│ │ │ ├── main.qml
│ │ │ └── main.qmlc
│ │ ├── flickable
│ │ │ ├── UI.qml
│ │ │ ├── flickable.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── glow
│ │ │ ├── Badge.qml
│ │ │ ├── glow.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── heartbeat
│ │ │ ├── HeartBeat.qml
│ │ │ ├── heartbeat.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ └── qml.qrc
│ │ ├── outlinedtext
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── outlinedtext.pro
│ │ │ ├── outlinetextitem.cpp
│ │ │ ├── outlinetextitem.h
│ │ │ ├── outlinetextitemborder.cpp
│ │ │ ├── outlinetextitemborder.h
│ │ │ └── resources.qrc
│ │ ├── particle_system
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── particle_system.pro
│ │ │ ├── qml.qrc
│ │ │ ├── star.png
│ │ │ └── star_white.png
│ │ ├── regularpolygon
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── regularpolygon.cpp
│ │ │ ├── regularpolygon.h
│ │ │ ├── regularpolygon.pro
│ │ │ └── resources.qrc
│ │ ├── scaled
│ │ │ ├── UI.qml
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── qml.qrc
│ │ │ └── scaled.pro
│ │ └── scaled2
│ │ ├── UI.qml
│ │ ├── main.cpp
│ │ ├── main.qml
│ │ ├── qml.qrc
│ │ └── scaled2.pro
│ ├── Chapter15
│ │ └── 3D graphics with Qt
│ │ ├── cpp3d
│ │ │ ├── cpp3d.pro
│ │ │ └── main.cpp
│ │ ├── hanoi
│ │ │ ├── Disk.qml
│ │ │ ├── DiskAnimation.qml
│ │ │ ├── Rod.qml
│ │ │ ├── Scene.qml
│ │ │ ├── hanoi.pro
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── obj
│ │ │ │ ├── disk.blend
│ │ │ │ ├── disk0.obj
│ │ │ │ ├── disk1.obj
│ │ │ │ ├── disk2.obj
│ │ │ │ ├── disk3.obj
│ │ │ │ ├── disk4.obj
│ │ │ │ ├── disk5.obj
│ │ │ │ ├── disk6.obj
│ │ │ │ └── disk7.obj
│ │ │ └── qml.qrc
│ │ ├── scene2d
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── main.qmlc
│ │ │ ├── qml.qrc
│ │ │ └── scene2d.pro
│ │ └── scene3d
│ │ ├── My3DScene.qml
│ │ ├── main.cpp
│ │ ├── main.qml
│ │ ├── main.qmlc
│ │ ├── qml.qrc
│ │ └── scene3d.pro
│ ├── Chapter16
│ │ └── Miscellaneous and Advanced Concepts
│ │ ├── qml_sound
│ │ │ ├── example.ogg
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── qml.qrc
│ │ │ └── qml_sound.pro
│ │ ├── record_and_play_sound
│ │ │ ├── main.cpp
│ │ │ ├── record_and_play_sound.pro
│ │ │ ├── recordandplaysound.cpp
│ │ │ ├── recordandplaysound.h
│ │ │ └── recordandplaysound.ui
│ │ ├── shared_memory
│ │ │ ├── client
│ │ │ │ ├── main.cpp
│ │ │ │ └── shared_memory_client.pro
│ │ │ └── server
│ │ │ ├── gameserver.cpp
│ │ │ ├── gameserver.h
│ │ │ ├── gamestats.h
│ │ │ ├── main.cpp
│ │ │ └── shared_memory_server.pro
│ │ ├── threading
│ │ │ ├── main.cpp
│ │ │ ├── threading.pro
│ │ │ ├── widget.cpp
│ │ │ ├── widget.h
│ │ │ ├── widget.ui
│ │ │ ├── worker.cpp
│ │ │ └── worker.h
│ │ ├── translations
│ │ │ ├── main.cpp
│ │ │ ├── resources.qrc
│ │ │ ├── translations
│ │ │ │ ├── myapp_de.qm
│ │ │ │ ├── myapp_de.ts
│ │ │ │ ├── myapp_ru.qm
│ │ │ │ └── myapp_ru.ts
│ │ │ ├── translations.pro
│ │ │ ├── widget.cpp
│ │ │ ├── widget.h
│ │ │ └── widget.ui
│ │ ├── unit_test
│ │ │ ├── tst_firsttest.cpp
│ │ │ └── unit_test.pro
│ │ └── websockets_qml
│ │ ├── client
│ │ │ ├── main.cpp
│ │ │ ├── main.qml
│ │ │ ├── qml.qrc
│ │ │ └── websockets_client.pro
│ │ └── server
│ │ ├── main.cpp
│ │ ├── main.qml
│ │ ├── qml.qrc
│ │ └── websockets_server.pro
│ ├── LICENSE
│ └── README.md
└── Game-Programming-Using-Qt-5-Beginners-Guide-Second-Edition-master.zip
161 directories, 736 files
10-17linux下的多线程gameBox