美文网首页
【python3小白上路系列】外星人入侵——开始

【python3小白上路系列】外星人入侵——开始

作者: Charles_DT | 来源:发表于2020-07-26 08:21 被阅读0次

早起的周日,今日阴天,老爸生日快乐~

开始项目

首先创建一个空的Pygame窗口,供后面用来绘制游戏元素,如飞船和外星人。我们还将让这个游戏响应用户输入、设置背景色以及加载飞船图像。

1.1.1 创建Pygame窗口以及相应用户输入

首先,我们创建一个空的Pygame窗口。使用Pygame编写的游戏的基本结构如下:

import pygame
import sys
import pygame

def run_game():
    # 初始化游戏并创建一个屏幕对象
    pygame.init()
    screen = pygame.display.set_mode((1920,1080))
    pygame.display.set_caption("Alien Invasion")

    # 开始游戏的主循环
    while True:

        #监视键盘和鼠标事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()

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

run_game()

现在运行的话,我们会看到一个空的Pygame窗口。


1.1.2 设置背景色

Pygame默认创建一个黑色屏幕,这太乏味了。下面来将背景设置为另一种颜色:

import pygame
import sys
import pygame

def run_game():

    # 初始化游戏并创建一个屏幕对象
    pygame.init() 
    screen = pygame.display.set_mode((1920,1080))
    pygame.display.set_caption("Alien Invasion")

    # 设置背景色
    bg_color = (230,230,230)

    # 开始游戏的主循环
    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.1.3 创建设置类

每次给游戏添加新功能时,通常也将引入一些新设置。下面来编写一个名为settings 的模块,其中包含一个名为Settings 的类,用于将所有设置存储在一个地方,以免在代码中到处添加设置。这样,我们就能传递一个设置对象,而不是众多不同的设置。另外,这让函数调用更简单,且在项目增大时修改游戏的外观更容易:要修改游戏,只需修改settings.py中的一些值,而无需查找散布在文件中的不同设置。

下面是初始设置:

class Settings():
    """存储游戏所有设置"""
    def __init__(self):
        """初始化游戏设置"""
        #屏幕设置
        self.screen_width = 1200
        self.screen_height = 800
        self.bg_color = (230,230,230)

为创建Settings 实例并使用它来访问设置,将alien_invasion.py修改成下面这样:

import pygame
import sys
import pygame

from settings import Settings

def run_game():

    # 初始化游戏并创建一个屏幕对象
    pygame.init() 
    ai_settings = Settings()
    screen = pygame.display.set_mode(
        (ai_settings.screen_width,ai_settings.screen_height))
    pygame.display.set_caption("Alien Invasion")

    # 开始游戏的主循环
    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()

运行结果:


就到这里吧,准备出去溜~

相关文章

网友评论

      本文标题:【python3小白上路系列】外星人入侵——开始

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