SDL game development discover how to leverage the power of SDL 2.0 to create awesome games in C++
Written as a practical and engaging tutorial, SDL Game Development guides you through developing your own framework and the creation of two engaging games.If you know C++ and you're looking to make great games from the ground up, then this book is perfect for you.
Autor principal: | |
---|---|
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Birmingham :
Packt Pub
2013.
|
Edición: | 1st ed |
Colección: | Community experience distilled
|
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009628717906719 |
Tabla de Contenidos:
- Intro
- SDL Game Development
- Table of Contents
- SDL Game Development
- 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. Getting Started with SDL
- Why use SDL?
- What is new in SDL 2.0?
- Migrating SDL 1.2 extensions
- Setting up SDL in Visual C++ Express 2010
- Using Mercurial to get SDL 2.0 on Windows
- Cloning and building the latest SDL 2.0 repository
- I have the library
- now what?
- Hello SDL
- An overview of Hello SDL
- SDL initialization flags
- SDL renderer flags
- What makes up a game
- Breaking up the Hello SDL code
- What does this code do?
- The Game class
- Fullscreen SDL
- Summary
- 2. Drawing in SDL
- Basic SDL drawing
- Getting some images
- Creating an SDL texture
- Source and destination rectangles
- Animating a sprite sheet
- Flipping images
- Installing SDL_image
- Using SDL_image
- Tying it into the framework
- Creating the texture manager
- Using texture manager as a singleton
- Summary
- 3. Working with Game Objects
- Using inheritance
- Implementing polymorphism
- Using abstract base classes
- Should we always use inheritance?
- Could the same thing be achieved with a simpler solution?
- Derived classes should model the "is a" relationship
- Possible performance penalties
- Putting it all together
- Summary
- 4. Exploring Movement and Input Handling
- Setting up game objects for movement
- What is a vector?
- Some common operations
- Addition of two vectors
- Multiply by a scalar number
- Subtraction of two vectors.
- Divide by a scalar number
- Normalizing a vector
- Adding the Vector2D class
- Adding velocity
- Adding acceleration
- Creating fixed frames per second
- Input handling
- Creating our input handler class
- Handling joystick/gamepad input
- SDL joystick events
- Initializing joysticks
- Listening for and handling axis movement
- Dealing with joystick button input
- Handling mouse events
- Using mouse button events
- Handling mouse motion events
- Implementing keyboard input
- Wrapping things up
- Summary
- 5. Handling Game States
- A simple way for switching states
- Implementing finite state machines
- A base class for game states
- Implementing FSM
- Implementing menu states
- Function pointers and callback functions
- Implementing the temporary play state
- Pausing the game
- Creating the game over state
- Summary
- 6. Data-driven Design
- Loading XML files
- Basic XML structure
- Implementing Object Factories
- Using Distributed Factories
- Fitting the factory into the framework
- Parsing states from an XML file
- Loading the menu state from an XML file
- Loading other states from an XML file
- Loading the play state
- Loading the pause state
- Loading the game over state
- Summary
- 7. Creating and Displaying Tile Maps
- What is a tile map?
- Getting familiar with the Tiled application
- Parsing and drawing a tile map
- Creating the TileLayer class
- Creating the LevelParser class
- Parsing tilesets
- Parsing a tile layer
- Drawing the map
- Scrolling a tile map
- Parsing object layers
- Developing the ObjectLayer class
- Summary
- 8. Creating Alien Attack
- Using the SDL_mixer extension for sound
- Creating the SoundManager class
- Setting up the basic game objects
- GameObject revamped
- SDLGameObject is now ShooterObject
- Player inherits from ShooterObject
- Lots of enemy types.
- Adding a scrolling background
- Handling bullets
- Two types of bullets
- The BulletHandler class
- Dealing with collisions
- Creating a CollisionManager class
- Possible improvements
- Summary
- 9. Creating Conan the Caveman
- Setting up the basic game objects
- No more bullets or bullet collisions
- Game objects and map collisions
- ShooterObject is now PlatformerObject
- The Camera class
- Camera-controlled map
- The Player class
- Possible additions
- Summary
- Index.