This time I will bring you the use of Python to develop simple small games. What are the precautions for using Python to develop small games. The following is a practical case, let's take a look.
Introduction
The python language has become popular recently. In addition to its useful role in the field of scientific computing, python is also used in games, backgrounds, etc. It also shines. This blog post will follow the formal project development process and teach you step by step to write a python game to feel the fun of it. The game developed this time is called alien invasion.
Install pygame and create a spaceship that can move left and right
My computer is windows 10, python3.6 , pygame download address: Portal
Please download the corresponding python version of pygame by yourself. Run the following command
$ pip install wheel $ pip install pygame‑1.9.3‑cp36‑cp36m‑win_amd64.whl
Create a Pygame window and respond to user input
Create a new folder alien_invasion, And create a new alien_invasion.py file in the folder and enter the following code.
import sys import pygame def run_game(): #initialize game and create a dispaly object pygame.init() screen = pygame.display.set_mode((1200,800)) pygame.display.set_caption("Alien Invasion") # set backgroud color bg_color = (230,230,230) # game loop while True: # supervise keyboard and mouse item for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # fill color screen.fill(bg_color) # visualiaze the window pygame.display.flip() run_game()
Run the above code, we can get a window with a gray interface:
$ python alien_invasion.py
In order to easily create some new functions during the process of writing games, let’s write an additional settings module, which contains a Settings class. , to store all settings in one place. This makes it easier to modify the game's appearance later as the project grows. We first modify the display size and display color in alien_invasion.py. First, create a new python file settings.py in the alien_invasion folder, and add the following code to it:
class Settings(object): """docstring for Settings""" def init(self): # initialize setting of game # screen setting self.screen_width = 1200 self.screen_height = 800 self.bg_color = (230,230,230)
Then import the Settings class in alien_invasion.py, and use the relevant settings, modify it as follows:
import sys import pygame from settings import Settings def run_game(): #initialize game and create a dispaly object pygame.init() ai_settings = Settings() screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) pygame.display.set_caption("Alien Invasion") # set backgroud color bg_color = (230,230,230) # game loop while True: # supervise keyboard and mouse item for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # fill color screen.fill(ai_settings.bg_color) # visualiaze the window pygame.display.flip() run_game()
Next, we need to add the spaceship to the game. To draw the player's ship on the screen, we will load an image and draw it using the Pygame() method blit(). Almost all types of image files can be used in games, but using bitmap (.bmp) files is easiest because Pygame loads bitmaps by default. Although other types of images can be loaded, additional libraries need to be installed. We recommend looking for images on a free stock photo site: Portal . We create a new folder called images in the main project folder (alien_invasion) and put the following bmp pictures into it.
Next, we create the ship class ship.py:
import pygame class Ship(): def init(self,screen): #initialize spaceship and its location self.screen = screen # load bmp image and get rectangle self.image = pygame.image.load('image/ship.bmp') self.rect = self.image.get_rect() self.screen_rect = screen.get_rect() #put spaceship on the bottom of window self.rect.centerx = self.screen_rect.centerx self.rect.bottom = self.screen_rect.bottom def blitme(self): #buld the spaceship at the specific location self.screen.blit(self.image,self.rect)
Finally we draw the ship on the screen, that is, call blitme in the alien_invasion.py file Method:
import sys import pygame from settings import Settings from ship import Settings def run_game(): #initialize game and create a dispaly object pygame.init() ai_settings = Settings() screen = pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) ship = Ship(screen) pygame.display.set_caption("Alien Invasion") # set backgroud color bg_color = (230,230,230) # game loop while True: # supervise keyboard and mouse item for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() # fill color screen.fill(ai_settings.bg_color) ship.blitme() # visualiaze the window pygame.display.flip() run_game()
Refactoring: module game_functions
In large projects, it is often necessary to refactor existing code before adding new code. The purpose of refactoring is to simplify the structure of the code and make it easier to extend. We will implement a game_functions module that will store a number of functions that allow the game Alien invasion to run. By creating the module game_functions, alien_invasion.py can be avoided from being too long, making its logic easier to understand.
First we move the code that manages events to a function called check_events() function, the purpose is to isolate the event loop
import sys import pygame def check_events(): #respond to keyboard and mouse item for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit()
Then we modify the alien_invasion.py code, import the game_functions module, and replace the event loop with a call to the function check_events():
import sys import pygame from settings import Settings from ship import Ship import game_functions as gf def run_game(): #initialize game and create a dispaly object pygame.init() ai_settings = Settings()
I believe you have mastered the method after reading the case in this article. For more exciting information, please pay attention to other related articles on the php Chinese website!
Recommended reading:
How to read and write txt files line by line in python
How to call mysql to update data in Python
The above is the detailed content of Develop simple games using Python. For more information, please follow other related articles on the PHP Chinese website!