美文网首页
Python外星人入侵游戏(二):添加设置类

Python外星人入侵游戏(二):添加设置类

作者: 微风细雨007 | 来源:发表于2018-01-15 17:23 被阅读748次

任务:

  • 创建一个空的Pygame窗口
  • 添加设置类

1.1:创建 Pygame 窗口以及响应用户输入

alien_invasion.py

import sys
import pygame

def run_game():
    # 初始化游戏并创建一个屏幕对象
    pygame.init()
    screen = pygame.display.set_mode((1200, 800))
    pygame.display.set_caption("外星人入侵")
    # 开始游戏的主循环
    while True:
        # 监视键盘和鼠标事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        # 让最近绘制的屏幕可见
        pygame.display.flip()

run_game()
理解注释
  • 代码行pygame.init()初始化背景设置
  • 调用pygame.display.set_mode()来创建一个名为screen的显示窗口
  • 实参(1200, 800)是一个元组,指定了游戏窗口的尺寸
  • 对象screen是一个surface。在Pygame中, surface是屏幕的一部分,用于显示游戏元素
  • 我们激活游戏的动画循环后,每经过一次循环都将自动重绘这个surface。
  • 这个游戏由一个while循环控制,其中包含一个事件循环以及管理屏幕更新的代码。
  • 为访问Pygame检测到的事件,我们使用方法pygame.event.get()
  • 玩家单击游戏窗口的关闭按钮时,将检测到pygame.QUIT事件,而我们调用sys.exit()来退出游戏
  • pygame.display.flip(),命令Pygame让最近绘制的屏幕可见,pygame.display.flip()将不断更新屏幕,以显示元 素的新位置,并在原来的位置隐藏元素,从而营造平滑移动的效果。
  • 最后一行调用run_game(),这将初始化游戏并开始主循环

1.2设置背景颜色

alien_invasion.py

--snip--
def run_game():
   --snip--
    pygame.display.set_caption("外星人入侵")
    # 设置背景颜色
    bg_color = (230, 230, 230)
    # 开始游戏的主循环
    while True:
        # 监视键盘和鼠标事件
        --snip--

        # 每次循环时都会重绘屏幕
        screen.fill(bg_color)

        # 让最近绘制的屏幕可见
        pygame.display.flip()

run_game()
理解注释
  • 我们创建了一种背景色,并将其存储在bg_color中
  • 我们调用方法screen.fill(),用背景色填充屏幕

1.3创建设置类

settings.py

class Settings():
    """存储外星人入侵所有设置"""

    def __init__(self):
        """初始化游戏的设置"""
        # 屏幕设置
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (230, 230, 230)

alien_invasion

import sys
import pygame
from settings import Settings

def run_game():
    # 初始化游戏并创建一个屏幕对象
    pygame.init()
    pygame.display.set_caption("外星人入侵")
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width, ai_settings.screen_height))
    # 开始游戏的主循环
    while True:
        # 监视键盘和鼠标事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        # 每次循环时都会重绘屏幕
        screen.fill(ai_settings.bg_color)

        # 让最近绘制的屏幕可见
        pygame.display.flip()

run_game()
理解注释

在主程序文件中,我们导入Settings类,调用pygame.init(),再创建一个Settings实例,并将其存储在变量 ai_settings中。创建屏幕时,使用了ai_settings的属性screen_width和screen_height;接下来填充屏幕时,也使用了ai_settings来访问背景色。
Python外星人入侵游戏(一)
Python外星人入侵游戏(三)

相关文章

网友评论

      本文标题:Python外星人入侵游戏(二):添加设置类

      本文链接:https://www.haomeiwen.com/subject/uqkdoxtx.html