My Account Log in

1 option

Game programming using Qt 5 beginner's guide : create amazing games with Qt 5, C++, and Qt Quick / Pavel Strakhov, Witold Wysota, Lorenz Haas.

Ebook Central Academic Complete Available online

View online
Format:
Book
Author/Creator:
Strakhov, Pavel, author.
Wysota, Witold, author.
Haas, Lorenz, author.
Language:
English
Subjects (All):
Video games--Programming.
Video games.
Physical Description:
1 online resource (697 pages)
Edition:
Second edition.
Place of Publication:
Birmingham ; Mumbai : Packt, [2018]
Summary:
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.
Contents:
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
Chapter 3: Qt GUI Programming
Creating GUI in Qt
Time for action - Creating a Qt Widgets project
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
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
Automatic deletion of objects
Time for action - Functionality of a tic-tac-toe board
Time for action - Reacting to the game board's signals
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
The Qt resource system
Time for action - Adding icons to the project
Have a go hero - Extending the game
Pop quiz
Chapter 4: Custom 2D Graphics with Graphics View
Graphics View architecture
Time for action - Creating a project with a Graphics View
Coordinate systems
The item's coordinate system
The scene's coordinate system
The viewport's coordinate system
Origin point of the transformation
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
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
Events
Time for action - Implementing the ability to scale the scene
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
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
Parallax scrolling
Time for action - Moving the background
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
Have a go hero - Letting the item handle Benjamin's jump
Time for action - Keeping multiple animations in sync
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
Finishing the game
A third way of animation
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.
Extracting information out of a string
Finding all pattern occurrences
Containers
Main container types
Convenience containers
Allowed item types
Implicit sharing
Pointer invalidation
Unnecessary allocation
Range-based for and Qt foreach macro
Data storage
Files and devices
Traversing directories
Reading and writing files
Devices
Time for action - Implementing a device to encrypt data
Have a go hero - A GUI for the Caesar cipher
Text streams
Binary streams
Time for action - Serialization of a custom structure
XML streams
Time for action - Implementing an XML parser for player data
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
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
The error signal
The readyRead signal
Time for action - Showing the download progress
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
Time for action - Reacting on a new pending connection
Time for action - Forwarding a new message
Have a go hero - Using QSignalMapper
Time for action - Detecting a disconnect
The client
Time for action - Setting up the client
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
Chapter 8: Custom Widgets
Raster and vector graphics
Raster painting
Painter attributes
Drawing operations
Creating a custom widget
Time for action - Custom-painted widgets
Time for action - Transforming the viewport
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
Have a go hero - Caching the oscillogram in a pixmap
Implementing a chess game.
Time for action - Developing the game architecture.
Notes:
Description based on print version record.
OCLC:
1035515943

The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Library Catalog Using Articles+ Library Account