售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
SFML Game Development By Example
Table of Contents
SFML Game Development By Example
Credits
About the Author
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. It's Alive! It's Alive! – Setup and First Program
What is SFML?
SFML licensing
Resources and installation
Setting up a Microsoft Visual Studio project
Opening a window
Basics of SFML drawing
Drawing images in SFML
What is a sprite?
Common mistakes
Summary
2. Give It Some Structure – Building the Game Framework
Graduating to ravioli
Implementing the window class
Building the game class
Putting our code to work
Hardware and execution time
Controlling the frame-rate
Using the SFML clock
Fixed time-step
Common mistakes
Summary
3. Get Your Hands Dirty – What You Need to Know
Introducing snake
Game design decisions
Implementing the snake structure
The snake class
The World class
Time to integrate
Hunting bugs
Fixing bugs
Going the extra mile
Common mistakes
Summary
4. Grab That Joystick – Input and Event Management
Retrieving peripheral input
Checking for mouse input
Plug in your controller
Understanding the sf::Event
Introducing the event manager
Standard function wrapper
Building the event manager
Implementing the event manager
Integrating the Event Manager class
Moving a sprite revisited
Principles of use
Common mistakes
Summary
5. Can I Pause This? – Application States
What is a state?
The most simplistic approach
Introducing the state pattern
Defining common types
The state manager class
Defining the state manager class
Implementing the state manager
Improving the Event Manager class
Incorporating the state manager
Creating the intro state
Implementing the intro state
The main menu state
A sample game state
The means to pause
Common mistakes
Summary
6. Set It in Motion! – Animating and Moving around Your World
Use of copyrighted resources
Finding and using the current directory
Using the SFML views
Preparing application states for views
Automated resource management
Designing a resource manager
Implementing the texture manager
Introducing sprite sheets
Implementing a sprite sheet class
The base animation class
Implementing the base animation class
Directional animation
Loading the sprite sheet files
Summary
7. Rediscovering Fire – Common Game Design Elements
The game map
What is a tile?
Building the game world
The flyweight pattern
Designing the map class
The parent of all world objects
Creating the base entity class
Collisions and bounding boxes
Implementing the base entity class
Entity-on-tile collisions
Entity storage and management
Implementing the entity manager
Using entities to build characters
Implementing the character class
Creating the player
Adding enemies
Loading entities from the map file
Final editions to our code base
Changes to the shared context
Putting all the pieces together
Summary
8. The More You Know – Common Game Programming Patterns
Use of copyrighted resources
What is a programming pattern?
The entity component system
What is a component?
The position component
The bitmask
Managing entities
Implementing the entity manager
The factory pattern
Designing the systems
Entity events
Entity event queue
The base system
Implementing the base system
Handling messages
The observer pattern
The message handler class
Managing systems
Implementing the system manager
Implementing the rendering system
The sprite sheet component
The renderer
Putting the ECS to work
The new and improved map
Adjusting the Map class
Summary
9. A Breath of Fresh Air – Entity Component System Continued
Adding entity movement
The movement system
Implementing states
The state system
The entity controller
Animating the entities
Handling collisions
The collision system
Implementing the collision system
Summary
10. Can I Click This? – GUI Fundamentals
Use of copyrighted resources
What is a GUI?
GUI style
Expansion of utility functions
Font management
The core of all elements
Implementing the GUI element class
Defining GUI events
The interface class
Implementing the interface class
Summary
11. Don't Touch the Red Button! – Implementing the GUI
The GUI manager
Implementing the GUI manager
The label element
The text field element
The scrollbar element
Integrating the GUI system
Expanding the event manager
Re-implementing the main menu
Summary
12. Can You Hear Me Now? – Sound and Music
Use of copyrighted resources
Preparing the project for sound
Basics of SFML sound
Playing sounds
Playing music
Sound spatialization
Placing sounds in space
Audio manager
Defining sound properties
Managing sounds
Implementing the sound manager
Adding support for sound
Animation system hooks
Entity component system expansion
The sound emitter component
The sound listener component
Implementing the sound system
Integrating our code
Summary
13. We Have Contact! – Networking Basics
Basics of networking
SFML networking
TCP sockets
Handling multiple connections
TCP protocol specifics
User datagram protocol
Alternative to sending raw data
SFML packets
Non-blocking sockets
Letting the traffic flow
Multi-threading
Shared data protection
Creating a simple communication protocol
Keeping a UDP connection alive
Designing the client class
Implementing the client
The server class
Implementing server
A simple chat application
The chat client
Summary
14. Come Play with Us! – Multiplayer Subtleties
Use of copyrighted resources
Shared code
Additional components
Building our game server
Additions to the entity component system
Implementing combat
Server action timing
Server network system
Implementing the network system
Server entity and system management
Main server class
Implementing the world class
Server entry point
Developing the game client
Entity component system expansions
Network class and interpolation
Implementing the client network class
Client entity and system management
Putting the pieces into place
Main menu adjustments
Summary
Index
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜