售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
SFML Game Development
Table of Contents
SFML Game Development
Credits
Foreword
About the Authors
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. Making a Game Tick
Introducing SFML
Downloading and installation
A minimal example
A few notes on C++
Developing the first game
The Game class
Game loops and frames
Input over several frames
Vector algebra
Frame-independent movement
Fixed time steps
Other techniques related to frame rates
Displaying sprites on the screen
File paths and working directories
Real-time rendering
Adapting the code
Summary
2. Keeping Track of Your Textures – Resource Management
Defining resources
Resources in SFML
Textures
Images
Fonts
Shaders
Sound buffers
Music
A typical use case
Graphics
Audio
Acquiring, releasing, and accessing resources
An automated approach
Finding an appropriate container
Loading from files
Accessing the textures
Error handling
Boolean return values
Throwing exceptions
Assertions
Generalizing the approach
Compatibility with sf::Music
A special case – sf::Shader
Summary
3. Forge of the Gods – Shaping Our World
Entities
Aircraft
Alternative entity designs
Rendering the scene
Relative coordinates
SFML and transforms
Scene graphs
Scene nodes
Node insertion and removal
Making scene nodes drawable
Drawing entities
Connecting entities with resources
Aligning the origin
Scene layers
Updating the scene
One step back – absolute transforms
The view
Viewport
View optimizations
Resolution and aspect ratio
View scrolling
Zoom and rotation
Landscape rendering
SpriteNode
Landscape texture
Texture repeating
Composing our world
World initialization
Loading the textures
Building the scene
Update and draw
Integrating the Game class
The run() method
Summary
4. Command and Control – Input Handling
Polling events
Window events
Joystick events
Keyboard events
Mouse events
Getting the input state in real time
Events and real-time input – when to use which
Delta movement from the mouse
Playing nice with your application neighborhood
A command-based communication system
Introducing commands
Receiver categories
Command execution
Command queues
Handling player input
Commands in a nutshell
Implementing the game logic
A general-purpose communication mechanism
Customizing key bindings
Why a player is not an entity
Summary
5. Diverting the Game Flow – State Stack
Defining a state
The state stack
Adding states to StateStack
Handling updates, input, and drawing
Input
Update
Draw
Delayed pop/push operations
The state context
Integrating the stack in the Application class
Navigating between states
Creating the game state
The title screen
Main menu
Pausing the game
The loading screen – sample
Progress bar
ParallelTask
Thread
Concurrency
Task implementation
Summary
6. Waiting and Maintenance Area – Menus
The GUI hierarchy, the Java way
Updating the menu
The promised key bindings
Summary
7. Warfare Unleashed – Implementing Gameplay
Equipping the entities
Introducing hitpoints
Storing entity attributes in data tables
Displaying text
Creating enemies
Movement patterns
Spawning enemies
Adding projectiles
Firing bullets and missiles
Homing missiles
Picking up some goodies
Collision detection and response
Finding the collision pairs
Reacting to collisions
An outlook on optimizations
An interacting world
Cleaning everything up
Out of view, out of the world
The final update
Victory and defeat
Summary
8. Every Pixel Counts – Adding Visual Effects
Defining texture atlases
Adapting the game code
Low-level rendering
OpenGL and graphics cards
Understanding render targets
Texture mapping
Vertex arrays
Particle systems
Particles and particle types
Particle nodes
Emitter nodes
Affectors
Embedding particles in the world
Animated sprites
The Eagle has rolled!
Post effects and shaders
Fullscreen post effects
Shaders
The bloom effect
Summary
9. Cranking Up the Bass – Music and Sound Effects
Music themes
Loading and playing
Use case – In-game themes
Sound effects
Loading, inserting, and playing
Removing sounds
Use case – GUI sounds
Sounds in 3D space
The listener
Attenuation factor and minimum distance
Positioning the listener
Playing spatial sounds
Use case – In-game sound effects
Summary
10. Company Atop the Clouds – Co-op Multiplayer
Playing multiplayer games
Interacting with sockets
TCP
UDP
Socket selectors
Custom protocols
Data transport
Network architectures
Peer-to-peer
Client-server architecture
Authoritative servers
Creating the structure for multiplayer
Working with the Server
Server thread
Server loop
Peers and aircraft
Hot Seat
Accepting new clients
Handling disconnections
Incoming packets
Studying our protocol
Understanding the ticks and updates
Synchronization issues
Taking a peek in the other end – the client
Client packets
Transmitting game actions via network nodes
The new pause state
Settings
The new Player class
Latency
Latency versus bandwidth
View scrolling compensation
Aircraft interpolation
Cheating prevention
Summary
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜