Book Image

Python Game Programming By Example

Book Image

Python Game Programming By Example

Overview of this book

A pragmatic guide for developing your own games with Python About This Book Strengthen your fundamentals of game programming with Python language Seven hands-on games to create 2D and 3D games rapidly from scratch Illustrative guide to explore the different GUI libraries for building your games Who This Book Is For If you have ever wanted to create casual games in Python and you would like to explore various GUI technologies that this language offers, this is the book for you. This title is intended for beginners to Python with little or no knowledge of game development, and it covers step by step how to build seven different games, from the well-known Space Invaders to a classical 3D platformer. What You Will Learn Take advantage of Python’s clean syntax to build games quickly Discover distinct frameworks for developing graphical applications Implement non-player characters (NPCs) with autonomous and seemingly intelligent behaviors Design and code some popular games like Pong and tower defense Compose maps and levels for your sprite-based games in an easy manner Modularize and apply object-oriented principles during the design of your games Exploit libraries like Chimpunk2D, cocos2d, and Tkinter Create natural user interfaces (NUIs), using a camera and computer vision algorithms to interpret the player’s real-world actions In Detail With a growing interest in learning to program, game development is an appealing topic for getting started with coding. From geometry to basic Artificial Intelligence algorithms, there are plenty of concepts that can be applied in almost every game. Python is a widely used general-purpose, high-level programming language. It provides constructs intended to enable clear programs on both a small and large scale. It is the third most popular language whose grammatical syntax is not predominantly based on C. Python is also very easy to code and is also highly flexible, which is exactly what is required for game development. The user-friendliness of this language allows beginners to code games without too much effort or training. Python also works with very little code and in most cases uses the “use cases” approach, reserving lengthy explicit coding for outliers and exceptions, making game development an achievable feat. Python Game Programming by Example enables readers to develop cool and popular games in Python without having in-depth programming knowledge of Python. The book includes seven hands-on projects developed with several well-known Python packages, as well as a comprehensive explanation about the theory and design of each game. It will teach readers about the techniques of game design and coding of some popular games like Pong and tower defense. Thereafter, it will allow readers to add levels of complexities to make the games more fun and realistic using 3D. At the end of the book, you will have added several GUI libraries like Chimpunk2D, cocos2d, and Tkinter in your tool belt, as well as a handful of recipes and algorithms for developing games with Python. Style and approach This book is an example-based guide that will teach you to build games using Python. This book follows a step-by-step approach as it is aimed at beginners who would like to get started with basic game development. By the end of this book you will be competent game developers with good knowledge of programming in Python.
Table of Contents (9 chapters)
8
Index

Working with colors


Normally, when OpenCV obtains an image from a file or camera, it puts the image in the blue-green-red (BGR) color format. More specifically, the image is a 3D NumPy array in which image[y][x][0] is a pixel's blue value (in the range of 0 to 255), image[y][x][1] is its green value, and image[y][x][2] is its red value. The y and x indices start from the top-left corner of the image. If we convert an image into grayscale, it becomes a 2D NumPy array, in which image[y][x] is a pixel's grayscale value.

Let's write some utility functions in the ColorUtils module to work with color data. Our functions will use Python's standard math module and NumPy, as seen in the following import statements:

import math
import numpy

Let's write a function that allows us to copy a single color channel from a source image (which is in BGR format) to a destination image (which is in grayscale format). If the specified destination image is None or its format is wrong, our function will create it...