Beginning Game Programming with Pygame Zero: Coding Interactive Games on Raspberry Pi Using Python 9781484256497, 9781484256503, 1484256492

Make fun games while learning to code. Focused on making games rather than teaching programming theory, in this book you

186 93 3MB

English Pages 368 [358]

Report DMCA / Copyright

DOWNLOAD FILE

Beginning Game Programming with Pygame Zero: Coding Interactive Games on Raspberry Pi Using Python
 9781484256497, 9781484256503, 1484256492

Table of contents :
Table of Contents
About the Author
About the Technical Reviewer
Acknowledgments
Introduction
Chapter 1: Creating Computer Games
Inspiration Rather Than Imitation
Playing Games
Create the Resources
Development Cycle
Making Programming Enjoyable
Python and Pygame Zero
Compiled vs. Interpreted
Choosing a Programming Environment
Summary
Chapter 2: Getting Started with Python
Using the Mu Editor
Python Programming
Variables
Strings and Format
Lists
Dictionaries
Tuples
Conditional Statements (if, elif, else)
Simple Quiz Game
Loops – While, For
While Loop
For Loop
Forever Loop – while True
Changing Loop Flow – break and continue
Functions
Variable Scope
Refactoring the Code
Further Improvements
Summary
Chapter 3: Pygame Zero
Pygame Zero Development
Compass Game
Required Files
Running Mu in Pygame Zero Mode
Adding a Background Image
Adding an Actor
Moving the Sprite Around the Screen
Making the Movements More Realistic
Keeping Game State
Detecting Collisions
Change in Direction
Keeping Score
Adding a Countdown Timer
Final Code for Compass Game Version 0.1
Summary
Chapter 4: Game Design
What Makes a Game Enjoyable?
Challenging but Achievable
Choices and Consequences
Rewards and Progress
Likeable Characters
Storyline/Historical Relevance
Educational
Takes an Appropriate Level of Time to Play
Inclusivity
Age Appropriate
Improving Compass Game
Updated Timer
Adding Obstacles
Adding a High Score
Try and Except
Summary
Chapter 5: Graphic Design
Creating a Theme
File Formats
Bitmap Images
Vector Images
Useful Tools
LibreOffice Draw
Inkscape
GIMP
Creating a Computer Image from a Drawing or Photo
Creating a Pixel Art Sprite
Blender
Create Using Code
Other Sources
Summary
Chapter 6: Colors
Color Mixing
Bouncing Ball
Background Color Selector
Handling Mouse Events
Creating the Color Selector
Summary
Chapter 7: Tank Game Zero
Vector Image of Tank
Creating a Dynamic Landscape
Calculating the Trajectory
Detecting a Collision
Complete Game Code
Improving the Game
Summary
Chapter 8: Sound
Recording Sound Effects
Creating Artificial Sound Effects
Recording Audio on the Raspberry Pi
Connecting a USB Microphone
Using arecord
Audacity
Recording Sounds with Audacity
Convert Audio Formats
Extract Audio from Video Files
Trim Audio Files
Creating Music with Sonic Pi
Downloading Free Sounds and Music
Adding Sound Effects in Pygame Zero
Playing Music in Pygame Zero
Piano Game Created with Tones
Summary
Chapter 9: Object-Oriented Programming
What Is Object-Oriented Programming?
OOP Classes and Objects
Creating a Class, Attributes, and Methods
Creating an Instance of a Class (Object)
Accessing Attributes of an Object
Terminology
Encapsulation and Data Abstraction
Inheritance
Design for Object-Oriented Programming
Matching Pairs Memory Game
Creating the Classes
Timer Class
Card Class
GamePlay Class
Program File
Summary
Chapter 10: Artificial Intelligence
Memory Game with AI
A Good Memory
Battleships
Summary
Chapter 11: Improvements and Debugging
Additional Techniques
More About Pygame Zero
More About Pygame
Adding Fonts
Scrolling Screen
Reading from a CSV config file
Joysticks and Gamepads
Creating Arcade Games for Picade
RetroPie
Debugging
Error Messages
Check for Variable Names
Print Statements
IDE Debugging Tools
Rubber Duck Debugging
Performance
Space Shooter Game
Summary
Where Next?
Appendix A: Quick Reference
Pygame Zero
Useful Keywords
Actor (Sprite)
Background Image or Color
Sound Effects
Mouse Events
Keyboard Events
Displaying Text
Python 3
Lists
Dictionaries
Conditional Statements (if, elif, else)
Loops
Python 3 Modules
Random
Math
Time
DateTime
Appendix B: More Information
Python
Pygame Zero
Pygame
Index

Polecaj historie