python大作业外星人入侵_【python3小白上路系列】外星人入侵——开始
早起的周日,今日陰天,老爸生日快樂(lè)~
開(kāi)始項(xiàng)目
首先創(chuàng)建一個(gè)空的Pygame窗口,供后面用來(lái)繪制游戲元素,如飛船和外星人。我們還將讓這個(gè)游戲響應(yīng)用戶(hù)輸入、設(shè)置背景色以及加載飛船圖像。
1.1.1 創(chuàng)建Pygame窗口以及相應(yīng)用戶(hù)輸入
首先,我們創(chuàng)建一個(gè)空的Pygame窗口。使用Pygame編寫(xiě)的游戲的基本結(jié)構(gòu)如下:
import pygame
import sys
import pygame
def run_game():
# 初始化游戲并創(chuàng)建一個(gè)屏幕對(duì)象
pygame.init()
screen = pygame.display.set_mode((1920,1080))
pygame.display.set_caption("Alien Invasion")
# 開(kāi)始游戲的主循環(huán)
while True:
#監(jiān)視鍵盤(pán)和鼠標(biāo)事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#讓最近繪制的屏幕可見(jiàn)
pygame.display.flip()
run_game()
現(xiàn)在運(yùn)行的話,我們會(huì)看到一個(gè)空的Pygame窗口。
1.1.2 設(shè)置背景色
Pygame默認(rèn)創(chuàng)建一個(gè)黑色屏幕,這太乏味了。下面來(lái)將背景設(shè)置為另一種顏色:
import pygame
import sys
import pygame
def run_game():
# 初始化游戲并創(chuàng)建一個(gè)屏幕對(duì)象
pygame.init()
screen = pygame.display.set_mode((1920,1080))
pygame.display.set_caption("Alien Invasion")
# 設(shè)置背景色
bg_color = (230,230,230)
# 開(kāi)始游戲的主循環(huán)
while True:
#監(jiān)視鍵盤(pán)和鼠標(biāo)事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#每次循環(huán)時(shí)都重繪屏幕
screen.fill(bg_color)
#讓最近繪制的屏幕可見(jiàn)
pygame.display.flip()
run_game()
讓我們?cè)賮?lái)運(yùn)行一下:
1.1.3 創(chuàng)建設(shè)置類(lèi)
每次給游戲添加新功能時(shí),通常也將引入一些新設(shè)置。下面來(lái)編寫(xiě)一個(gè)名為settings 的模塊,其中包含一個(gè)名為Settings 的類(lèi),用于將所有設(shè)置存儲(chǔ)在一個(gè)地方,以免在代碼中到處添加設(shè)置。這樣,我們就能傳遞一個(gè)設(shè)置對(duì)象,而不是眾多不同的設(shè)置。另外,這讓函數(shù)調(diào)用更簡(jiǎn)單,且在項(xiàng)目增大時(shí)修改游戲的外觀更容易:要修改游戲,只需修改settings.py中的一些值,而無(wú)需查找散布在文件中的不同設(shè)置。
下面是初始設(shè)置:
class Settings():
"""存儲(chǔ)游戲所有設(shè)置"""
def __init__(self):
"""初始化游戲設(shè)置"""
#屏幕設(shè)置
self.screen_width = 1200
self.screen_height = 800
self.bg_color = (230,230,230)
為創(chuàng)建Settings 實(shí)例并使用它來(lái)訪問(wèn)設(shè)置,將alien_invasion.py修改成下面這樣:
import pygame
import sys
import pygame
from settings import Settings
def run_game():
# 初始化游戲并創(chuàng)建一個(gè)屏幕對(duì)象
pygame.init()
ai_settings = Settings()
screen = pygame.display.set_mode(
(ai_settings.screen_width,ai_settings.screen_height))
pygame.display.set_caption("Alien Invasion")
# 開(kāi)始游戲的主循環(huán)
while True:
#監(jiān)視鍵盤(pán)和鼠標(biāo)事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
#每次循環(huán)時(shí)都重繪屏幕
screen.fill(ai_settings.bg_color)
#讓最近繪制的屏幕可見(jiàn)
pygame.display.flip()
run_game()
運(yùn)行結(jié)果:
就到這里吧,準(zhǔn)備出去溜~
總結(jié)
以上是生活随笔為你收集整理的python大作业外星人入侵_【python3小白上路系列】外星人入侵——开始的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 坚果和极米这两个牌子的投影机哪个更好?
- 下一篇: python apscheduler执行