12-1 蓝色天空
import sys
import pygame
def run_game():
"""初始化游戏,绘制屏幕,设定背景色"""
pygame.init()
screen = pygame.display.set_mode((500,300))
bg_color = (135,206,250)
# 防止游戏窗口秒退
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT: # 处理退出事件
sys.exit()
screen.fill(bg_color) # 用背景色填充屏幕
pygame.display.flip() # 每次循环都重绘屏幕
run_game()
重点
1、while True
添加一个循环和一个响应事件,防止游戏窗口闪退。
2、pygame.display.flip
每次循环完毕都重绘屏幕
12-2 游戏角色
run.py
import sys
import pygame
from pika import Pika
def run_game():
"""初始化游戏,绘制屏幕,设定背景色"""
pygame.init()
screen = pygame.display.set_mode((500,300))
bg_color = (135,206,250)
pika = Pika(screen)
# 防止游戏窗口秒退
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT: # 处理退出事件
sys.exit()
screen.fill(bg_color) # 用背景色填充屏幕
pygame.display.flip() # 每次循环都重绘屏幕
pika.blitme()
run_game()
pika.py
import pygame
class Pika():
def __init__(self,screen):
self.screen = screen
self.image = pygame.image.load("images/pika.bmp")
self.rect = self.image.get_rect()
self.screen_rect = screen.get_rect()
self.rect.centerx = self.screen_rect.centerx
self.rect.centery = self.screen_rect.centery
def blitme(self):
self.screen.blit(self.image, self.rect)
输出结果
未解决问题
如何将该图像的背景色设置为屏幕背景色,或将屏幕背景色设置为该图像的背景色?