Book Image

Python Game Programming By Example

By : Alejandro Rodas de Paz, Joseph Howse
Book Image

Python Game Programming By Example

By: Alejandro Rodas de Paz, Joseph Howse

Overview of this book

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.
Table of Contents (9 chapters)
8
Index

The scenario definition


Once we have loaded the tile map, we need to link the resulting image with the game information. Our scenario class should contain the following:

  • The positions where the turrets can be placed

  • The position of the bunker

  • The initial position for enemy spawning

  • The path that the enemies must follow to reach the bunker

In the following screenshot, we can see this data overlaid on top of our TMX map:

The rectangles represent the slots in which the player can place the turrets. The scenario stores only the centers of these squares, because the game layer will translate these positions into clickable squares.

The lines over the road represent the path that the enemy tanks must follow. This movement will be implemented by chaining the MoveBy and RotateBy actions. We will define two constants for rotation toward the left or the right, and an auxiliary function that returns a MoveBy action whose duration makes the enemies move uniformly:

import cocos.actions as ac

RIGHT = ac.RotateBy...