Game Programming Using Qt 5 Beginner's Guide : Create Amazing Games with Qt 5, C++, and Qt Quick.
Strakhov, Pavel Vladimirovich.
Game Programming Using Qt 5 Beginner's Guide : Create Amazing Games with Qt 5, C++, and Qt Quick. - 2nd ed. - 1 online resource (697 pages)
Cover -- Copyright and Credits -- Dedication -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Introduction to Qt -- A journey through time -- The cross-platform programming -- Supported platforms -- GUI scalability -- Qt versions -- Structure of Qt framework -- Qt Essentials -- Qt Add-ons -- qmake -- Modern C++ standards -- Choosing the right license -- An open source license -- A commercial license -- Summary -- Chapter 2: Installation -- Installing the Qt SDK -- Time for action - Installing Qt using an online installer -- What just happened? -- Qt Creator -- Qt Creator's modes -- Setting up compilers, Qt versions, and kits -- Time for action - Loading an example project -- Qt documentation -- Time for action - Running the Affine Transformations project -- What just happened? -- Summary -- Chapter 3: Qt GUI Programming -- Creating GUI in Qt -- Time for action - Creating a Qt Widgets project -- What just happened? -- Design mode interface -- Time for action - Adding widgets to the form -- Layouts -- Time for action - Adding a layout to the form -- Signals and slots -- Creating signals and slots -- Connecting signals and slots -- Old connect syntax -- Signal and slot access specifiers -- Time for action - Receiving the button-click signal from the form -- What just happened? -- Automatic slot connection and its drawbacks -- Time for action - Changing the texts on the labels from the code -- Creating a widget for the tic-tac-toe board -- Choosing between designer forms and plain C++ classes -- Time for action - Creating a game board widget -- What just happened? -- Automatic deletion of objects -- Time for action - Functionality of a tic-tac-toe board -- Time for action - Reacting to the game board's signals -- What just happened? -- Advanced form editor usage -- Time for action - Designing the game configuration dialog. Accelerators and label buddies -- The tab order -- Time for action - Public interface of the dialog -- Polishing the application -- Size policies -- Protecting against invalid input -- Main menu and toolbars -- Time for action - Creating a menu and a toolbar -- What just happened? -- The Qt resource system -- Time for action - Adding icons to the project -- Have a go hero - Extending the game -- Pop quiz -- Summary -- Chapter 4: Custom 2D Graphics with Graphics View -- Graphics View architecture -- Time for action - Creating a project with a Graphics View -- What just happened? -- Coordinate systems -- The item's coordinate system -- The scene's coordinate system -- The viewport's coordinate system -- Origin point of the transformation -- What just happened? -- Have a go hero - Applying multiple transformations -- Parent-child relationship between items -- Time for action - Using child items -- Have a go hero - Implementing the custom rectangle as a class -- Conversions between coordinate systems -- Overview of functionality -- Standard items -- Anti-aliasing -- Pens and brushes -- Item selection -- Keyboard focus in graphics scene -- Painter paths -- Time for action - Adding path items to the scene -- Z-order of items -- Ignoring transformations -- Time for action - Adding text to a custom rectangle -- Finding items by position -- Showing specific areas of the scene -- Saving a scene to an image file -- What just happened? -- Have a go hero - Rendering only specific parts of a scene -- Custom items -- Time for action - Creating a sine graph project -- Time for action - Creating a graphics item class -- What just happened? -- Events -- Time for action - Implementing the ability to scale the scene -- What just happened? -- Time for action - Taking the zoom level into account -- Time for action - Reacting to an item's selection state. What just happened? -- Time for action - Event handling in a custom item -- Time for action - Implementing the ability to create and delete elements with mouse -- Time for action - Changing the item's size -- Have a go hero - Extending the item's functionality -- Widgets inside Graphics View -- Optimization -- A binary space partition tree -- Caching the item's paint function -- Optimizing the view -- OpenGL in the Graphics View -- Pop quiz -- Summary -- Chapter 5: Animations in Graphics View -- The jumping elephant or how to animate the scene -- The game play -- Time for action - Creating an item for Benjamin -- The playing field -- Time for action - Making Benjamin move -- What just happened? -- Parallax scrolling -- Time for action - Moving the background -- What just happened? -- Have a go hero - Adding new background layers -- The Animation framework -- Properties -- Time for action - Adding a jump animation -- Property animations -- Time for action - Using animations to move items smoothly -- What just happened? -- Have a go hero - Letting the item handle Benjamin's jump -- Time for action - Keeping multiple animations in sync -- What just happened? -- Chaining multiple animations -- Adding gamepad support -- Working with gamepads in Qt -- Time for action - Handling gamepad events -- Item collision detection -- Time for action - Making the coins explode -- What just happened? -- Finishing the game -- Have a go hero - Extending the game -- A third way of animation -- Pop quiz -- Summary -- Chapter 6: Qt Core Essentials -- Text handling -- String encodings -- QByteArray and QString -- Using other encodings -- Basic string operations -- The string search and lookup -- Dissecting strings -- Converting between numbers and strings -- Internationalization -- Using arguments in strings -- Regular expressions -- Time for action - A simple quiz game. What just happened? -- Extracting information out of a string -- Finding all pattern occurrences -- Containers -- Main container types -- Convenience containers -- Allowed item types -- Implicit sharing -- Pointer invalidation -- What just happened? -- Unnecessary allocation -- Range-based for and Qt foreach macro -- What just happened? -- Data storage -- Files and devices -- Traversing directories -- Reading and writing files -- Devices -- Time for action - Implementing a device to encrypt data -- What just happened? -- Have a go hero - A GUI for the Caesar cipher -- Text streams -- Binary streams -- Time for action - Serialization of a custom structure -- What just happened? -- XML streams -- Time for action - Implementing an XML parser for player data -- What just happened? -- What just happened? -- Have a go hero - An XML serializer for player data -- QVariant -- QSettings -- Settings hierarchy -- Customizing the settings location and format -- JSON files -- Time for action - The player data JSON serializer -- Time for action - Implementing a JSON parser -- What just happened? -- Pop quiz -- Summary -- Chapter 7: Networking -- QNetworkAccessManager -- Setting up a local HTTP server -- Preparing a URL for testing -- Time for action - Downloading a file -- Have a go hero - Extending the basic file downloader -- Single network manager per application -- Time for action - Displaying a proper error message -- Downloading files over FTP -- Downloading files in parallel -- The finished signal -- Time for action - Writing the OOP conform code using QSignalMapper -- What just happened? -- The error signal -- The readyRead signal -- Time for action - Showing the download progress -- What just happened? -- Using a proxy -- Connecting to Google, Facebook, Twitter, and co. -- Time for action - Using Google's Distance Matrix API. Time for action - Constructing the query -- Time for action - Parsing the server's reply -- Have a go hero - Choosing XML as the reply's format -- Controlling the connectivity state -- QNetworkConfigurationManager -- QNetworkConfiguration -- QNetworkSession -- QNetworkInterface -- Communicating between games -- Time for action - Realizing a simple chat program -- The server - QTcpServer -- Time for action - Setting up the server -- What just happened? -- Time for action - Reacting on a new pending connection -- What just happened? -- Time for action - Forwarding a new message -- Have a go hero - Using QSignalMapper -- Time for action - Detecting a disconnect -- What just happened? -- The client -- Time for action - Setting up the client -- What just happened? -- Time for action - Receiving text messages -- Time for action - Sending text messages -- Have a go hero - Extending the chat server and client -- Synchronous network operations -- Using UDP -- Time for action - Sending a text via UDP -- Have a go hero - Connecting players of the Benjamin game -- Pop quiz -- Summary -- Chapter 8: Custom Widgets -- Raster and vector graphics -- Raster painting -- Painter attributes -- Coordinate systems -- Drawing operations -- Creating a custom widget -- Time for action - Custom-painted widgets -- What just happened? -- Time for action - Transforming the viewport -- What just happened? -- Time for action - Drawing an oscillogram -- Time for action - Making oscillograms selectable -- Have a go hero - Reacting only to the left mouse button -- Touch events -- Working with images -- Loading -- Modifying -- Painting -- Painting text -- Static text -- Optimizing widget painting -- Time for action - Optimizing oscillogram drawing -- What just happened? -- Have a go hero - Caching the oscillogram in a pixmap -- Implementing a chess game. Time for action - Developing the game architecture.
Qt is the leading cross-platform toolkit for all significant desktop, mobile, and embedded platforms and is becoming popular by the day, especially on mobile and embedded devices. It's a powerful tool that perfectly fits the needs of game developers. This book will help you learn the basics of Qt and will equip you with the necessary toolsets.
9781788390651
Computer games-Programming.
Electronic books.
QA76.9.U83 .S773 2018
005.437
Game Programming Using Qt 5 Beginner's Guide : Create Amazing Games with Qt 5, C++, and Qt Quick. - 2nd ed. - 1 online resource (697 pages)
Cover -- Copyright and Credits -- Dedication -- Packt Upsell -- Contributors -- Table of Contents -- Preface -- Chapter 1: Introduction to Qt -- A journey through time -- The cross-platform programming -- Supported platforms -- GUI scalability -- Qt versions -- Structure of Qt framework -- Qt Essentials -- Qt Add-ons -- qmake -- Modern C++ standards -- Choosing the right license -- An open source license -- A commercial license -- Summary -- Chapter 2: Installation -- Installing the Qt SDK -- Time for action - Installing Qt using an online installer -- What just happened? -- Qt Creator -- Qt Creator's modes -- Setting up compilers, Qt versions, and kits -- Time for action - Loading an example project -- Qt documentation -- Time for action - Running the Affine Transformations project -- What just happened? -- Summary -- Chapter 3: Qt GUI Programming -- Creating GUI in Qt -- Time for action - Creating a Qt Widgets project -- What just happened? -- Design mode interface -- Time for action - Adding widgets to the form -- Layouts -- Time for action - Adding a layout to the form -- Signals and slots -- Creating signals and slots -- Connecting signals and slots -- Old connect syntax -- Signal and slot access specifiers -- Time for action - Receiving the button-click signal from the form -- What just happened? -- Automatic slot connection and its drawbacks -- Time for action - Changing the texts on the labels from the code -- Creating a widget for the tic-tac-toe board -- Choosing between designer forms and plain C++ classes -- Time for action - Creating a game board widget -- What just happened? -- Automatic deletion of objects -- Time for action - Functionality of a tic-tac-toe board -- Time for action - Reacting to the game board's signals -- What just happened? -- Advanced form editor usage -- Time for action - Designing the game configuration dialog. Accelerators and label buddies -- The tab order -- Time for action - Public interface of the dialog -- Polishing the application -- Size policies -- Protecting against invalid input -- Main menu and toolbars -- Time for action - Creating a menu and a toolbar -- What just happened? -- The Qt resource system -- Time for action - Adding icons to the project -- Have a go hero - Extending the game -- Pop quiz -- Summary -- Chapter 4: Custom 2D Graphics with Graphics View -- Graphics View architecture -- Time for action - Creating a project with a Graphics View -- What just happened? -- Coordinate systems -- The item's coordinate system -- The scene's coordinate system -- The viewport's coordinate system -- Origin point of the transformation -- What just happened? -- Have a go hero - Applying multiple transformations -- Parent-child relationship between items -- Time for action - Using child items -- Have a go hero - Implementing the custom rectangle as a class -- Conversions between coordinate systems -- Overview of functionality -- Standard items -- Anti-aliasing -- Pens and brushes -- Item selection -- Keyboard focus in graphics scene -- Painter paths -- Time for action - Adding path items to the scene -- Z-order of items -- Ignoring transformations -- Time for action - Adding text to a custom rectangle -- Finding items by position -- Showing specific areas of the scene -- Saving a scene to an image file -- What just happened? -- Have a go hero - Rendering only specific parts of a scene -- Custom items -- Time for action - Creating a sine graph project -- Time for action - Creating a graphics item class -- What just happened? -- Events -- Time for action - Implementing the ability to scale the scene -- What just happened? -- Time for action - Taking the zoom level into account -- Time for action - Reacting to an item's selection state. What just happened? -- Time for action - Event handling in a custom item -- Time for action - Implementing the ability to create and delete elements with mouse -- Time for action - Changing the item's size -- Have a go hero - Extending the item's functionality -- Widgets inside Graphics View -- Optimization -- A binary space partition tree -- Caching the item's paint function -- Optimizing the view -- OpenGL in the Graphics View -- Pop quiz -- Summary -- Chapter 5: Animations in Graphics View -- The jumping elephant or how to animate the scene -- The game play -- Time for action - Creating an item for Benjamin -- The playing field -- Time for action - Making Benjamin move -- What just happened? -- Parallax scrolling -- Time for action - Moving the background -- What just happened? -- Have a go hero - Adding new background layers -- The Animation framework -- Properties -- Time for action - Adding a jump animation -- Property animations -- Time for action - Using animations to move items smoothly -- What just happened? -- Have a go hero - Letting the item handle Benjamin's jump -- Time for action - Keeping multiple animations in sync -- What just happened? -- Chaining multiple animations -- Adding gamepad support -- Working with gamepads in Qt -- Time for action - Handling gamepad events -- Item collision detection -- Time for action - Making the coins explode -- What just happened? -- Finishing the game -- Have a go hero - Extending the game -- A third way of animation -- Pop quiz -- Summary -- Chapter 6: Qt Core Essentials -- Text handling -- String encodings -- QByteArray and QString -- Using other encodings -- Basic string operations -- The string search and lookup -- Dissecting strings -- Converting between numbers and strings -- Internationalization -- Using arguments in strings -- Regular expressions -- Time for action - A simple quiz game. What just happened? -- Extracting information out of a string -- Finding all pattern occurrences -- Containers -- Main container types -- Convenience containers -- Allowed item types -- Implicit sharing -- Pointer invalidation -- What just happened? -- Unnecessary allocation -- Range-based for and Qt foreach macro -- What just happened? -- Data storage -- Files and devices -- Traversing directories -- Reading and writing files -- Devices -- Time for action - Implementing a device to encrypt data -- What just happened? -- Have a go hero - A GUI for the Caesar cipher -- Text streams -- Binary streams -- Time for action - Serialization of a custom structure -- What just happened? -- XML streams -- Time for action - Implementing an XML parser for player data -- What just happened? -- What just happened? -- Have a go hero - An XML serializer for player data -- QVariant -- QSettings -- Settings hierarchy -- Customizing the settings location and format -- JSON files -- Time for action - The player data JSON serializer -- Time for action - Implementing a JSON parser -- What just happened? -- Pop quiz -- Summary -- Chapter 7: Networking -- QNetworkAccessManager -- Setting up a local HTTP server -- Preparing a URL for testing -- Time for action - Downloading a file -- Have a go hero - Extending the basic file downloader -- Single network manager per application -- Time for action - Displaying a proper error message -- Downloading files over FTP -- Downloading files in parallel -- The finished signal -- Time for action - Writing the OOP conform code using QSignalMapper -- What just happened? -- The error signal -- The readyRead signal -- Time for action - Showing the download progress -- What just happened? -- Using a proxy -- Connecting to Google, Facebook, Twitter, and co. -- Time for action - Using Google's Distance Matrix API. Time for action - Constructing the query -- Time for action - Parsing the server's reply -- Have a go hero - Choosing XML as the reply's format -- Controlling the connectivity state -- QNetworkConfigurationManager -- QNetworkConfiguration -- QNetworkSession -- QNetworkInterface -- Communicating between games -- Time for action - Realizing a simple chat program -- The server - QTcpServer -- Time for action - Setting up the server -- What just happened? -- Time for action - Reacting on a new pending connection -- What just happened? -- Time for action - Forwarding a new message -- Have a go hero - Using QSignalMapper -- Time for action - Detecting a disconnect -- What just happened? -- The client -- Time for action - Setting up the client -- What just happened? -- Time for action - Receiving text messages -- Time for action - Sending text messages -- Have a go hero - Extending the chat server and client -- Synchronous network operations -- Using UDP -- Time for action - Sending a text via UDP -- Have a go hero - Connecting players of the Benjamin game -- Pop quiz -- Summary -- Chapter 8: Custom Widgets -- Raster and vector graphics -- Raster painting -- Painter attributes -- Coordinate systems -- Drawing operations -- Creating a custom widget -- Time for action - Custom-painted widgets -- What just happened? -- Time for action - Transforming the viewport -- What just happened? -- Time for action - Drawing an oscillogram -- Time for action - Making oscillograms selectable -- Have a go hero - Reacting only to the left mouse button -- Touch events -- Working with images -- Loading -- Modifying -- Painting -- Painting text -- Static text -- Optimizing widget painting -- Time for action - Optimizing oscillogram drawing -- What just happened? -- Have a go hero - Caching the oscillogram in a pixmap -- Implementing a chess game. Time for action - Developing the game architecture.
Qt is the leading cross-platform toolkit for all significant desktop, mobile, and embedded platforms and is becoming popular by the day, especially on mobile and embedded devices. It's a powerful tool that perfectly fits the needs of game developers. This book will help you learn the basics of Qt and will equip you with the necessary toolsets.
9781788390651
Computer games-Programming.
Electronic books.
QA76.9.U83 .S773 2018
005.437