這裏寫目錄標題
創作不易,各位看官,點個贊收藏、關注必回關、QAQ、您的點贊是我更新的最大動力!
一、項目整體說明
#v1.01 開發日誌 :
原理:和動畫原理相同,快速切換圖片,爲了避免上一次貼圖,每次刷新前,重貼所有圖片
分級實現: 對應下圖work項目文件圖 文件後綴編號
V1 搭建整體框架
V2 設計主邏輯
V3 主邏輯事件檢測
V4 我方坦克分析
V5 創建我方坦克 並且加載貼圖
V6 實現我方坦克 移動
整體實現: 實現鍵盤控制我方坦克上下左右移動 2020-05-13
分析.txt 部分截圖 序號爲程序編寫步驟 對比py文件 比如#v5.1# v5.2# v5.4
二、pygame下載方式
-
1.pip 安裝
- windows+R–>cmd–>命令行輸入 pip install pygame
-
2.pycharm中安裝
- file–>settting–>Project Interpreter–>右側±-install–>搜索框輸入pygame–>下方 install package
-
3.下載好安裝包之後直接安裝
- 在Python官網下載好pygame-1.9.6-cp37-cp37m-win_amd64.whl,打開命令窗口,切換到安裝包目錄,執行 pip install pygame-1.9.6-cp37-cp37m-win_amd64.whl
-
使用 pip list 查看是否有pygame
三、項目文件
開始項目的時候先搭建整體框架
1、坦克大戰_框架_1.py
-
實現框架的搭建(類的設計)
-
主邏輯類
-
基本坦克類
-
我方坦克類
-
敵方坦克類
-
子彈類
-
牆壁類
-
爆炸類
-
# 主邏輯類
class MainGame:
def start(self):
"""開始遊戲"""
pass
def game_over(self):
"""結束遊戲"""
pass
# 基本坦克類
class BaseTank:
pass
# 我方坦克類
class HeroTank:
pass
# 敵方坦克類
class EnemyTank:
pass
# 子彈類
class Bullet:
pass
# 牆壁類
class wall:
pass
2、坦克大戰_開始遊戲_窗口設置_2.py
v2
主邏輯類
屬性:遊戲窗口
方法:開始遊戲 start()
- 窗口初始化
- 設置窗口
- 設置標題(坦克大戰v_1.0)
- 窗口背景
- 遊戲應該在無限循環
"""
項目:坦克大戰
時間:2020-05-13
作者:穩穩
使用軟件及版本:Pycharm python3.6 pygame1.9
"""
# 主邏輯類
"""
主邏輯類
屬性:遊戲窗口
方法:開始遊戲 start()
- 窗口初始化
- 設置窗口
- 設置標題(坦克大戰v_1.0)
- 窗口背景
- 遊戲應該在無限循環
"""
import pygame
class MainGame:
# 遊戲主窗口
window = None
def start(self):
"""開始遊戲"""
# 調用窗口初始化
pygame.display.init()
# 創建窗口 set_mode("窗口寬,窗口高")
MainGame.window = pygame.display.set_mode((900,500))
# 設置窗口標題
pygame.display.set_caption("坦克大戰v_1.0")
while True :
# 設置窗口背景 fill() 設置顏色 RGB 這裏設置黑色
MainGame.window.fill((0,0,0))
# 刷新顯示
pygame.display.update()
def game_over(self):
"""結束遊戲"""
pass
# 基本坦克類
class BaseTank:
pass
# 我方坦克類
class HeroTank:
pass
# 敵方坦克類
class EnemyTank:
pass
# 子彈類
class Bullet:
pass
# 牆壁類
class wall:
pass
# 創建對象
start = MainGame()
# 對象開始遊戲
start.start()
初始化的窗口效果圖:
3、坦克大戰_事件檢測_3.py
v3
添加內容:主邏輯內進行事件檢測
主邏輯類
效果:鼠標放到窗口 反饋數據
屬性:遊戲窗口
方法:開始遊戲 start()
事件檢測 deal_event()
- 鼠標點擊窗口事件 pygame.QUIT
- 鍵盤按下事件 pygame.KEYDOWN
- 鍵盤長按事件 pygame.key.getpressed()
"""
項目:坦克大戰
時間:2020-05-13
作者:穩穩
使用軟件及版本:Pycharm python3.6 pygame1.9
"""
# 主邏輯類
"""
主邏輯類
屬性:遊戲窗口
方法:開始遊戲 start()
- 窗口初始化
- 設置窗口
- 設置標題(坦克大戰v_1.0)
- 窗口背景
- 遊戲應該在無限循環
"""
import pygame
import sys
class MainGame:
# 遊戲主窗口
window = None
def start(self):
"""開始遊戲"""
# 調用窗口初始化
pygame.display.init()
# 創建窗口 set_mode("窗口寬,窗口高")
MainGame.window = pygame.display.set_mode((900,500))
# 設置窗口標題
pygame.display.set_caption("坦克大戰v_1.0")
while True :
# 設置窗口背景 fill() 設置顏色 RGB 這裏設置黑色
MainGame.window.fill((0,0,0))
# 調用時間檢測事件
self.deal_event()
# 刷新顯示
pygame.display.update()
def deal_event(self):
"""事件檢測"""
# 鼠標放上窗口和敲擊鍵盤可以觀察到位置信息反饋
# print(pygame.event.get())
# 獲取新事件
for event in pygame.event.get():
# 1. 鼠標點擊關閉窗口事件
if event.type == pygame.QUIT:
print("點擊關閉窗口按鈕")
sys.exit() # 關閉程序
# 2. 按下鍵盤檢測
elif event.type == pygame.KEYDOWN:
# 按下鍵盤反饋數據
# print("按下鍵盤")
if event.key == pygame.K_LEFT:
print("左移動")
elif event.key == pygame.K_RIGHT:
print("右移動")
# 3. 鼠標點擊檢測
elif event.type == pygame.MOUSEBUTTONDOWN:
print("鼠標點擊事件")
def game_over(self):
"""結束遊戲"""
pass
# 基本坦克類
class BaseTank:
pass
# 我方坦克類
class HeroTank:
pass
# 敵方坦克類
class EnemyTank:
pass
# 子彈類
class Bullet:
pass
# 牆壁類
class wall:
pass
# 創建對象
start = MainGame()
# 對象開始遊戲
start.start()
鼠標放到遊戲窗口,鍵盤左右按下,可以看到反饋,其實這個可以註釋掉,只能留下關閉窗口檢測
4、坦克大戰_基本坦克_我方坦克繼承_4.py
v4
我方坦克分析
由於我方坦克和敵方坦克有相識屬性和方法,所以可以先寫基本坦克類
讓我方坦克和敵方坦克繼承基本坦克類
基本坦克類:BaseTank
屬性:圖片、方向、圖片矩形區域、坦克位置、移動速度、是否活着
方法:移動、貼圖
參考代碼以及步驟(定義基本坦克類,讓我方坦克繼承)
1.加載坦克圖片 存於字典中
2.初始化坦克方向
3.根據坦克方向獲取坦克圖片
4.獲取圖片矩形區域
5.根據傳入的參數,決定坦克的位置
6.移動速度
7.是否活着
坦克貼圖方法display_tank()
8.先獲取坦克圖片
9.貼坦克圖片
我方坦克類HeroTank(BaseTank)
10.繼承基本坦克類
"""
項目:坦克大戰
時間:2020-05-13
作者:穩穩
使用軟件及版本:Pycharm python3.6 pygame1.9
"""
# 主邏輯類
"""
主邏輯類
屬性:遊戲窗口
方法:開始遊戲 start()
- 窗口初始化
- 設置窗口
- 設置標題(坦克大戰v_1.0)
- 窗口背景
- 遊戲應該在無限循環
"""
import pygame
import sys
class MainGame:
# 遊戲主窗口
window = None
def start(self): # V2
"""開始遊戲"""
# 調用窗口初始化
pygame.display.init()
# 創建窗口 set_mode("窗口寬,窗口高")
MainGame.window = pygame.display.set_mode((900,500))
# 設置窗口標題
pygame.display.set_caption("坦克大戰v_1.0")
while True :
# 設置窗口背景 fill() 設置顏色 RGB 這裏設置黑色
MainGame.window.fill((0,0,0))
# 調用時間檢測事件
self.deal_event()
# 刷新顯示
pygame.display.update()
def deal_event(self): # V3
"""事件檢測"""
# 鼠標放上窗口和敲擊鍵盤可以觀察到位置信息反饋
# print(pygame.event.get())
# 獲取新事件
for event in pygame.event.get():
# 1. 鼠標點擊關閉窗口事件
if event.type == pygame.QUIT:
print("點擊關閉窗口按鈕")
sys.exit() # 關閉程序
# 2. 按下鍵盤檢測
elif event.type == pygame.KEYDOWN:
# 按下鍵盤反饋數據
# print("按下鍵盤")
if event.key == pygame.K_LEFT:
print("左移動")
elif event.key == pygame.K_RIGHT:
print("右移動")
# 3. 鼠標點擊檢測
elif event.type == pygame.MOUSEBUTTONDOWN:
print("鼠標點擊事件")
def game_over(self):
"""結束遊戲"""
pass
# 基本坦克類
class BaseTank: # V4
def __init__(self,x,y):
"""
基本坦克類的屬性
x,y:坦克初始在遊戲窗口的位置
"""
# 1.加載圖片文件,返回圖片對象
# 1.將坦克圖片存儲在字典中
self.images = {
"U":pygame.image.load("tank_img/p1tankU.gif"),
"D":pygame.image.load("tank_img/p1tankU.gif"),
"L":pygame.image.load("tank_img/p1tankU.gif"),
"R":pygame.image.load("tank_img/p1tankU.gif"),
}
# 2.給初始化坦克一個方向
self.direction = "U"
# 3.根據坦克方向獲取坦克圖片
self.image = self.images[self.direction]
# 4.獲取圖片矩形區域
self.rect = self.image.get_rect()
# 5.根據傳入的參數,決定坦克的位置
self.rect.x = x # 坦克的x座標
self.rect.y = y # 坦克的y座標
# 6.移動速度
self.speed = 3
# 7.是否活着
self.live = True
def display_tank(self):
"""坦克圖片的貼圖方法"""
# 8.先獲取坦克圖片
self.image = self.images[self.direction]
# 9.貼坦克圖片
MainGame.window.blit(self.image,self.rect)
# 我方坦克類
class HeroTank(BaseTank):
# 10.繼承基本坦克類
def __init__(self):
super(HeroTank,self).__init__(x,y)
self.speed = 2
# 敵方坦克類
class EnemyTank:
pass
# 子彈類
class Bullet:
pass
# 牆壁類
class wall:
pass
# 創建對象
start = MainGame()
# 對象開始遊戲
start.start()
5、坦克大戰_我方坦克貼圖_5.py
v5
創建我方坦克 並加載圖片
在主邏輯中,一開始就在我方坦克,定義P類屬性記錄
先定義創建我方坦克的方法 create_hero_tank,
在定義加載坦克圖片方法 load_hero_tank
在開始遊戲時,調用創建坦克對象的方法,在循環中加載坦克圖片
1.記錄我方坦克
2.在MainGame 創建坦克方法 create_tank()
3.加載我方坦克 load_heor_tank()
4.調用坦克創建的方法
5.調用坦克貼圖方法
並不能移動!!!!!!!!!!!!!!!!!!!!
"""
項目:坦克大戰
時間:2020-05-13
作者:穩穩
使用軟件及版本:Pycharm python3.6 pygame1.9
"""
import pygame
import sys
# 主邏輯類
class MainGame:
# V2遊戲主窗口
window = None
# V5.1記錄我方坦克
P1 = None
def create_tank(self): #V5.2
"""創建我方坦克"""
# v5.2判斷我方坦克是否創建
if not MainGame.P1:
MainGame.P1 = HeroTank(500,400) # 坦克初始位置
def load_heor_tank(self): #v5.3
"""加載我方坦克"""
# v5.3如果坦克就調用坦克貼圖的方法
if MainGame.P1 and MainGame.P1.live:
MainGame.P1.display_tank()
else:
# v5.3如果坦克死了,刪除坦克對象,刪除貼圖
del MainGame.P1
MainGame.P1 = None # v5.3恢復坦克初始化設置
def start(self): # V2
"""開始遊戲"""
# V2調用窗口初始化
pygame.display.init()
# V2創建窗口 set_mode("窗口寬,窗口高")
MainGame.window = pygame.display.set_mode((900,500))
# V2設置窗口標題
pygame.display.set_caption("坦克大戰v_1.0")
# v5.4 調用坦克創建的方法
self.create_tank()
while True :
# V2設置窗口背景 fill() 設置顏色 RGB 這裏設置黑色
MainGame.window.fill((0,0,0))
# V2調用時間檢測事件
self.deal_event()
# v5.5調用坦克貼圖方法
self.load_heor_tank()
# V2刷新顯示
pygame.display.update()
def deal_event(self): # V3
"""事件檢測"""
# V3鼠標放上窗口和敲擊鍵盤可以觀察到位置信息反饋
# print(pygame.event.get())
# V3獲取新事件
for event in pygame.event.get():
# V3.1 鼠標點擊關閉窗口事件
if event.type == pygame.QUIT:
print("點擊關閉窗口按鈕")
sys.exit() # 關閉程序
# V3.2 按下鍵盤檢測
elif event.type == pygame.KEYDOWN:
# print("按下鍵盤")
# V3.2按下鍵盤反饋數據
if event.key == pygame.K_LEFT:
print("左移動")
elif event.key == pygame.K_RIGHT:
print("右移動")
# 3. 鼠標點擊檢測
elif event.type == pygame.MOUSEBUTTONDOWN:
print("鼠標點擊事件")
def game_over(self):
"""結束遊戲"""
pass
# 基本坦克類
class BaseTank: # V4
def __init__(self,x,y):
self.x = x
self.y = y
"""
基本坦克類的屬性
x,y:坦克初始在遊戲窗口的位置
"""
# V4.1.加載圖片文件,返回圖片對象
# V4.1.將坦克圖片存儲在字典中
self.images = {
"U":pygame.image.load("tank_img/p1tankU.gif"),
"D":pygame.image.load("tank_img/p1tankU.gif"),
"L":pygame.image.load("tank_img/p1tankU.gif"),
"R":pygame.image.load("tank_img/p1tankU.gif"),
}
# V4.2.給初始化坦克一個方向
self.direction = "U"
# V4.3.根據坦克方向獲取坦克圖片
self.image = self.images[self.direction]
# V4.4.獲取圖片矩形區域
self.rect = self.image.get_rect()
# V4.5.根據傳入的參數,決定坦克的位置
self.rect.x = x # 坦克的x座標
self.rect.y = y # 坦克的y座標
# V4.6.移動速度
self.speed = 3
# V4.7.是否活着
self.live = True
def display_tank(self):
"""坦克圖片的貼圖方法"""
# V4.8.先獲取坦克圖片
self.image = self.images[self.direction]
# V4.9.貼坦克圖片
MainGame.window.blit(self.image,self.rect)
# 我方坦克類
class HeroTank(BaseTank):
# V4.10.繼承基本坦克類
def __init__(self,x,y):
super(HeroTank,self).__init__(x,y)
self.speed = 2
# 敵方坦克類
class EnemyTank:
pass
# 子彈類
class Bullet:
pass
# 牆壁類
class wall:
pass
# 創建對象
start = MainGame()
# 對象開始遊戲
start.start()
效果圖:
6、坦克大戰_我方坦克移動_6.py
v6
實現我方坦克移動的方法
BaseTank 中 創建 move()
在基本坦克類中添加坦克移動方法
判斷坦克的方向,是哪個方向就向哪個方向移動 PS:參考位置圖
- 移動方式:
- 初始化位置設爲全局變量
代碼執行:
1.坦克方向判斷
2.邊界判斷
3.修改全局變量 SCREEN_HEIGHT,SCREEN_WIDTH
4.修改判斷邊界
5.我方坦克重寫父類move()
6.判斷鍵盤狀態
7.鍵盤被按下執行移動
"""
項目:坦克大戰
時間:2020-05-13
作者:穩穩
使用軟件及版本:Pycharm python3.6 pygame1.9
"""
import pygame
import sys
import time
# V6.3 全局判斷
SCREEN_HEIGHT = 500
SCREEN_WIDTH = 900
# 主邏輯類
class MainGame:
# V2遊戲主窗口
window = None
# V5.1記錄我方坦克
P1 = None
def create_tank(self): # V5.2
"""創建我方坦克"""
# v5.2判斷我方坦克是否創建
if not MainGame.P1:
MainGame.P1 = HeroTank(500,400) # 坦克初始位置
def load_heor_tank(self): # v5.3
"""加載我方坦克"""
# v5.3如果坦克就調用坦克貼圖的方法
if MainGame.P1 and MainGame.P1.live:
MainGame.P1.display_tank()
MainGame.P1.move()
else:
# v5.3如果坦克死了,刪除坦克對象,刪除貼圖
del MainGame.P1
MainGame.P1 = None # v5.3恢復坦克初始化設置
def start(self): # V2
"""開始遊戲"""
# V2調用窗口初始化
pygame.display.init()
# V2創建窗口 set_mode("窗口寬,窗口高") # V6.3
MainGame.window = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
# V2設置窗口標題
pygame.display.set_caption("坦克大戰v_1.0")
# v5.4 調用坦克創建的方法
self.create_tank()
while True :
# V2設置窗口背景 fill() 設置顏色 RGB 這裏設置黑色
MainGame.window.fill((0,0,0))
# V2調用時間檢測事件
self.deal_event()
# v5.5調用坦克貼圖方法
self.load_heor_tank()
# V2刷新顯示
pygame.display.update()
time.sleep(0.02)
def deal_event(self): # V3
"""事件檢測"""
# V3鼠標放上窗口和敲擊鍵盤可以觀察到位置信息反饋
# print(pygame.event.get())
# V3獲取新事件
for event in pygame.event.get():
# V3.1 鼠標點擊關閉窗口事件
if event.type == pygame.QUIT:
print("點擊關閉窗口按鈕")
sys.exit() # 關閉程序
# V3.2 按下鍵盤檢測
elif event.type == pygame.KEYDOWN:
# print("按下鍵盤")
# V3.2按下鍵盤反饋數據
if event.key == pygame.K_LEFT:
print("左移動")
elif event.key == pygame.K_RIGHT:
print("右移動")
elif event.key == pygame.K_SPACE:
print("空格發射子彈")
# 3. 鼠標點擊檢測
elif event.type == pygame.MOUSEBUTTONDOWN:
print("鼠標點擊事件")
def game_over(self):
"""結束遊戲"""
# 基本坦克類
class BaseTank: # V4
def __init__(self,x,y):
self.x = x
self.y = y
"""
基本坦克類的屬性
x,y:坦克初始在遊戲窗口的位置
"""
# V4.1.加載圖片文件,返回圖片對象
# V4.1.將坦克圖片存儲在字典中
self.images = {
"U":pygame.image.load("tank_img/p1tankU.gif"),
"D":pygame.image.load("tank_img/p1tankD.gif"),
"L":pygame.image.load("tank_img/p1tankL.gif"),
"R":pygame.image.load("tank_img/p1tankR.gif"),
}
# V4.2.給初始化坦克一個方向
self.direction = "U"
# V4.3.根據坦克方向獲取坦克圖片
self.image = self.images[self.direction]
# V4.4.獲取圖片矩形區域
self.rect = self.image.get_rect()
# V4.5.根據傳入的參數,決定坦克的位置
self.rect.x = x # 坦克的x座標
self.rect.y = y # 坦克的y座標
# V4.6.移動速度
self.speed = 3
# V4.7.是否活着
self.live = True
def display_tank(self):
"""坦克圖片的貼圖方法"""
# V4.8.先獲取坦克圖片
self.image = self.images[self.direction]
# V4.9.貼坦克圖片
MainGame.window.blit(self.image,self.rect)
def move(self):
"""坦克移動的方法"""
# v6.1 判斷坦克的方向 是否向上 向上處理
if self.direction == "U":
# v6.2 邊界判斷
if self.rect.y > 0 :
self.rect.y -= self.speed
elif self.direction == "D":
# v6.2 邊界判斷 #v6.4
if self.rect.y<SCREEN_HEIGHT-self.rect.height :
self.rect.y += self.speed
elif self.direction == "L":
# v6.2 邊界判斷
if self.rect.x > 0 :
self.rect.x -= self.speed
elif self.direction == "R":
# v6.2 邊界判斷 #v6.4
if self.rect.x<SCREEN_WIDTH-self.rect.width :
self.rect.x += self.speed
# 在加載我方坦克調用坦克移動放馬 MainGame.P1.move()
# 此時坦克只能向上移動
# 我方坦克類
class HeroTank(BaseTank):
# V4.10.繼承基本坦克類
def __init__(self,x,y):
super(HeroTank,self).__init__(x,y)
self.speed = 2
# v6.5 創建我方坦克方法 重寫父類
def move(self):
"""我方坦克移動方法"""
# #v6.6 鍵盤長按事件 獲取鍵盤上所有按鍵狀態 按下1 沒按0
keys_status = pygame.key.get_pressed()
# print(keys_status)
# v6.7如果被按下
if keys_status[pygame.K_UP]:
# 改變移動的方向 重新賦值
self.direction = "U"
# 調用父類移動方式
super(HeroTank, self).move()
elif keys_status[pygame.K_DOWN]:
# 改變移動的方向 重新賦值
self.direction = "D"
# 調用父類移動方式
super(HeroTank, self).move()
elif keys_status[pygame.K_LEFT]:
# 改變移動的方向 重新賦值
self.direction = "L"
# 調用父類移動方式
super(HeroTank, self).move()
elif keys_status[pygame.K_RIGHT]:
# 改變移動的方向 重新賦值
self.direction = "R"
# 調用父類移動方式
super(HeroTank, self).move()
# 敵方坦克類
class EnemyTank:
pass
# 子彈類
class Bullet:
pass
# 牆壁類
class wall:
pass
# 創建對象
start = MainGame()
# 對象開始遊戲
start.start()
效果圖說明:可以左右移動,並且邊界設置
四、API Pygame模塊遊戲開發所用語句
遊戲_API文檔.py
import pygame # 導入pygame
# 初始化pygame庫,讓計算機硬件準備
pygame.init()
# --------窗口相關操作----------
# 創建窗口
window = pygame.display.set_mode((窗口寬,窗口高))
#窗口填充顏色
window.fill((0,0,0))
# 刷新界面 不刷新不會更新顯示的內容
pygame.display.update()
# 設置窗口標題
pygame.display.set_caption("窗口標題")
# 設置窗口圖標
image = pygame.image.load("res/game.ico")
pygame.display.set_icon(image)
# --------圖像相關操作-----------
# 加載圖片文件,返回圖片對象
image = pygame.image.load("圖片路徑")
# 貼圖(指定座標,將圖片繪製到窗口)
window.blit(image, (0, 0))
# 判斷兩個矩形是否相交,相交返回True, 否則返回False
flag = pygame.Rect.colliderect(rect1, rect2)
# 進行一對一的衝突檢測
pygame.sprite.collide_rect(obj1,obj2)
# 獲得圖片矩形對象 -> Rect(x, y, width, height) x,y默認都是左上角(0,0)
rect = image.get_rect()
# 獲取圖片的寬高
print(rect.width)
# 在原位置基礎上,移動指定的偏移量 (x, y 增加)
rect.move_ip(num1, num2)
# 將圖片對象按指定寬高縮放,返回新的圖片對象
trans_image = pygame.transform.scale(image, (WINDOWWIDTH, WINDOWHEIGHT))
# --------事件相關操作-----------
# 獲取新事件
for event in pygame.event.get():
# 1. 鼠標點擊關閉窗口事件
if event.type == pygame.QUIT:
print("點擊關閉窗口按鈕")
sys.exit() # 關閉程序
pygame.quit() # 退出pygame,清理pygame佔用資源
# 2. 鍵盤按下事件
if event.type == pygame.KEYDOWN:
# 判斷用戶按鍵
if event.key == pygame.K_LEFT or event.key == pygame.K_a:
print("left")
if event.key == pygame.K_RIGHT or event.key == pygame.K_d:
print("right")
if event.key == pygame.K_SPACE:
print("space")
# 3. 鍵盤長按事件
# 獲取當前鍵盤所有按鍵的狀態(按下/沒有按下),返回bool元組 (0, 0, 0, 0, 1, 0, 0, 0, 0)
pressed_keys = pygame.key.get_pressed()
if pressed_keys[pygame.K_a] or pressed_keys[pygame.K_LEFT]:
print("left")
if pressed_keys[pygame.K_d] or pressed_keys[pygame.K_RIGHT]:
print("right")
# ----------文本相關操作-------------
# 加載系統字體,返回字體對象
font_obj = pygame.font.SysFont('SimHei', 42)
# 加載自定義字體,返回字體對象
font_obj = pygame.font.Font("res/SIMHEI.TTF", 42)
三基色: Red Green Blue
0 - 255
# 設置文本,返回文本對象 render(文本內容, 抗鋸齒,顏色)
text_obj = font.render("飛機大戰", 1, (255, 255, 255))
# 設置文本的位置和尺寸 獲取文本的Rect並修改Rect的中心點爲 (300,300)
text_rect = text_obj.get_rect(centerx=300, centery=300)
# 在指定位置和尺寸繪製指定文字對象
window.blit(text_obj, text_rect)
# ---------音效相關操作------------
# 加載背景音樂
pygame.mixer.music.load("./res/bg2.ogg")
# 循環播放背景音樂
pygame.mixer.music.play(-1)
# 停止背景音樂
pygame.mixer.music.stop()
# 生成音效對象
boom_sound = pygame.mixer.Sound("./res/baozha.ogg")
# 播放音效
boom_sound.play()
# 停止音效
boom_sound.stop()