第一需要安裝pygame這個(gè)庫(kù):
pygame這個(gè)是第三方得游戲庫(kù)缔莲,可以做圖形拱她,游戲等
image.png
image.png
1.1首先我們開(kāi)啟外星人入侵項(xiàng)目第一步創(chuàng)建游戲得窗體
import pygame #導(dǎo)入第三方得pygame游戲庫(kù)
import sys #導(dǎo)入系統(tǒng)庫(kù)
"""
1魂拦、外星人入侵游戲
1.1 我們這次不使用函數(shù)矢赁,后續(xù)逐步優(yōu)化升級(jí)劣砍,我們只是使用python基礎(chǔ)得語(yǔ)法
"""
pygame.init() #這個(gè)是進(jìn)行游戲初始化,就是創(chuàng)建一個(gè)屏幕
screen = pygame.display.set_mode((1200,800)) #設(shè)置游戲屏幕得大小,寬和高,注意這個(gè)是元組(1200笆檀,800)
pygame.display.set_caption("外星人入侵") #這個(gè)是設(shè)置屏幕得名稱(左上角游戲名稱)
#首先游戲是不斷進(jìn)行得简僧,需要使用無(wú)限循環(huán),使用while
while True:
for event in pygame.event.get(): #不斷循環(huán)獲取坐標(biāo)位置
print(event) #這個(gè)可以看到屏幕是不斷進(jìn)行刷新
if event.type == pygame.QUIT: #判斷這個(gè)是否點(diǎn)擊x進(jìn)行退出
sys.exit() #系統(tǒng)退出指令
pygame.display.flip() #最近繪制屏幕可見(jiàn)
image.png
1.2 設(shè)置背景色
在Pygame中棍矛,顏色是以RGB值指定的。這種顏色由紅色、綠色和藍(lán)色值組成敛纲,其中每個(gè)值的可能取值范圍都為0~255。顏色值(255, 0, 0)表示紅色剂癌,(0, 255, 0)表示綠色淤翔,而(0, 0, 255)表示藍(lán)色。通過(guò)組合不同的RGB值佩谷,可創(chuàng)建1600萬(wàn)種顏色旁壮。在顏色值(230, 230, 230)中,紅色谐檀、藍(lán)色和綠色量相同抡谐,它將背景設(shè)置為一種淺灰色
image.png
1.3設(shè)置 創(chuàng)建Ship類
注意 在Pygame中,原點(diǎn)(0, 0)位于屏幕左上角桐猬,向右下方移動(dòng)時(shí)麦撵,坐標(biāo)值將增大。在1200×800的屏幕上课幕,原點(diǎn)位于左上角厦坛,而右下角的坐標(biāo)為(1200, 800)。
image.png
import pygame #導(dǎo)入第三方得pygame游戲庫(kù)
import sys #導(dǎo)入系統(tǒng)庫(kù)
"""
1乍惊、外星人入侵游戲
1.1 我們這次不使用函數(shù)杜秸,后續(xù)逐步優(yōu)化升級(jí),我們只是使用python基礎(chǔ)得語(yǔ)法
"""
pygame.init() #這個(gè)是進(jìn)行游戲初始化润绎,就是創(chuàng)建一個(gè)屏幕
screen = pygame.display.set_mode((1200,800)) #設(shè)置游戲屏幕得大小撬碟,寬和高,注意這個(gè)是元組(1200莉撇,800)
pygame.display.set_caption("外星人入侵") #這個(gè)是設(shè)置屏幕得名稱(左上角游戲名稱)
#首先游戲是不斷進(jìn)行得呢蛤,需要使用無(wú)限循環(huán),使用while
bg_color = (230,230,230) #三原色設(shè)置背景顏色
#創(chuàng)建ship船艦
class Ship:
def __init__(self,screen): #這個(gè)是構(gòu)造函數(shù)棍郎,初始化使用其障,后續(xù)函數(shù)會(huì)詳細(xì)講解
"""
可設(shè)置相應(yīng)rect對(duì)象的屬性center、centerx或centery涂佃。要讓游戲元素與屏幕邊緣對(duì)齊励翼,
可使用屬性top蜈敢、bottom、left或right汽抚;要調(diào)整游戲元素的水平或垂直位置抓狭,
可使用屬性x和y,它們分別是相應(yīng)矩形左上角的x和y坐標(biāo)造烁。
"""
self.screen = screen #這個(gè)是初始化飛船平設(shè)置其初始化位置
# self.image = pygame.image.load("../images/ship.bmp") #設(shè)置飛船得路徑否过,一般在代碼文件目錄新建一個(gè)images
self.image = pygame.image.load("../images/ship.bmp")
self.rect = self.image.get_rect() #獲取圖像得大小
print("self.rect",self.rect)
self.screen_rect = screen.get_rect()
#將每艘新飛船放在屏幕底部中央
self.rect.centerx = self.screen_rect.centerx#
self.rect.bottom = self.screen_rect.bottom #
def blitme(self):
print(self)
self.screen.blit(self.image,self.rect) #在指定位置繪制飛船
#繪制飛機(jī)
ship = Ship(screen)
while True:
for event in pygame.event.get(): #不斷循環(huán)獲取坐標(biāo)位置
# print(event) #這個(gè)可以看到屏幕是不斷進(jìn)行刷新
if event.type == pygame.QUIT: #判斷這個(gè)是否點(diǎn)擊x進(jìn)行退出
sys.exit() #系統(tǒng)退出指令
# ship.blitme() #
screen.fill(bg_color) #每次都進(jìn)行屏幕得繪制
# screen.fill(ship)
# screen.blit(ship_bg,(100,100))
ship.blitme()
pygame.display.flip() #最近繪制屏幕可見(jiàn)
image.png