- 安装pygame
pip3 install pygame
#apt install python3-dev mercurial libsdl-image1.2-dev libsdl2-dev libsdl-ttf2.0-dev
high:
apt install libsdl-mixer1.2-dev libportmidi-dev python-numpy
apt install libswscale-dev libsmpeg-dev libavformat-dev libavcodec-dev
- 检查是否安装成功
import pygame #导入不报错
import sys
import pygame
def run_game():
pygame.init() #初始化game并创建一个屏幕对象
screen=pygame.display.set_mode((1200,800)) #创建一个指定像素大小的显示窗口。
pygame.display.set_caption("Alien Invasion") #窗口标题
bg_color = (230,230,230) #指定背景色,默认创建一个黑色屏幕。
while True:
for event in pygame.event.get(): #这个方法用来检测所有的键盘和鼠标事件。
if event.type == pygame.QUIT: #使用if语句来检测相应特定的事件。例如退出游戏时的关闭按钮(pygame.QUIT事件)
sys.exit() #退出程序
screen.fill(bg_color) #每次循环时都重新绘制屏幕。用背景色填充。
pygame.display.flip() #让最近绘制的屏幕可见。
#移动游戏元素时,将不断更新屏幕。
run_game()
version 2.0
- 为了更加易于配置管理,创建了settings模块
alien.py主程序
import sys
import pygame
from settings import Settings #add
from ship import Ship #add
def run_game():
pygame.init()
ai_settings = Settings() #add
screen=pygame.display.set_mode((ai_settings.screen_width,ai_settings.screen_height)) #xiu
pygame.display.set_caption("Alien Invasion")
bg_color = (230,230,230)
ship = Ship(screen) #add
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
screen.fill(ai_settings.bg_color) #修
ship.blitme()
pygame.display.flip()
run_game()
settings.py
class Settings():
"""存储game的所有设置的类"""
def __init__(self):
"""初始化game的设置"""
#屏幕设置
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (230,230,230)
ship.py
import pygame
class Ship():
def __init__(self,screen):
"""初始化ship并设置其初始位置"""
self.screen = screen
self.image = pygame.image.load('images/ship.bmp') #加载ship图片
self.rect = self.image.get_rect()
self.screen_rect = screen.get_rect()
self.rect.centerx = self.screen_rect.centerx
self.rect.bottom = self.screen_rect.bottom
def blitme(self):
"""指定位置绘制飞船"""
self.screen.blit(self.image,self.rect)