TY - BOOK AU - Strakhov,Pavel Vladimirovich TI - Game Programming Using Qt 5 Beginner's Guide: Create Amazing Games with Qt 5, C++, and Qt Quick SN - 9781788390651 AV - QA76.9.U83 .S773 2018 U1 - 005.437 PY - 2018/// CY - Birmingham PB - Packt Publishing, Limited KW - Computer games-Programming KW - Electronic books N1 - 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 N2 - 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 UR - https://ebookcentral.proquest.com/lib/orpp/detail.action?docID=5379700 ER -