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.
- 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.