項目搭建
本遊戲主要分為兩個對象,分別是我方坦克和敵方坦克。用戶可以通過控制我方的坦克
來摧毀敵方的坦克保護自己的“家”,把所有的敵方坦克消滅完達到勝利。敵方的坦克在初
始的時候是默認 5 個的(這可以自己設置),當然,如果我方坦克被敵方坦克的子彈打中,
遊戲結束。從面向對象分析該項目有以下類組成:
□ 主類:主要包括開始遊戲、結束遊戲的功能。
class MainGame():
#開始遊戲方法
def startGame(self):
pass
def endGame(self):
pass
□ 坦克類:主要包括坦克的創建、顯示、移動及射擊的功能。
class Tank():
def __init__(self):
pass
#坦克的移動方法
def move(self):
pass
#碰撞牆壁的方法
def hitWalls(self):
pass
#射擊方法
def shot(self):
pass
#展示坦克
def displayTank(self):
pass
□ 我方坦克類繼承坦克類,主要包括創建、與敵方坦克的碰撞方法。
class MyTank(Tank):
def __init__(self):
pass
#碰撞敵方坦克的方法
def hitEnemyTank(self):
pass
□ 敵方坦克類繼承坦克類,主要包括創建、與我方坦克碰撞方法。
class EnemyTank(Tank):
def __init__(self):
pass
def hitMyTank(self):
pass
□ 子彈類:主要包括子彈的創建、顯示及移動的功能。
class Bullet():
def __init__(self):
pass
#子彈的移動方法
def bulletMove(self):
pass
#展示子彈的方法
def displayBullet(self):
pass
#我方子彈碰撞敵方坦克的方法
def hitEnemyTank(self):
pass
#敵方子彈與我方坦克的碰撞方法
def hitMyTank(self):
pass
#子彈與牆壁的碰撞
def hitWalls(self):
pass
□ 牆壁類:主要包括牆壁的創建、顯示的功能。
class Wall():
def __init__(self):
pass
#展示牆壁的方法
def displayWall(self):
pass
□ 爆炸效果類:主要展示爆炸效果。
class Explode():
def __init__(self):
pass
#展示爆炸效果
def displayExplode(self):
pass
□ 音效類:主要播放音樂。
class Music():
def __init__(self):
pass
#開始播放音樂
def play(self):
pass
顯示遊戲窗口
在遊戲設計的前期,要先創建遊戲的界面,也就是要為所設計的遊戲創建一個窗口,可
以通過如下代碼實現:
【示例 1-4】顯示遊戲窗口
import pygame
_display = pygame.display
COLOR_BLACK = pygame.Color(0, 0, 0)
class MainGame():
#遊戲主窗口
window = None
SCREEN_HEIGHT = 500
SCREEN_WIDTH = 800
def __init__(self):
pass
#開始遊戲方法
def startGame(self): _display.init()
#創建窗口加載窗口
MainGame.window =
_display.set_mode([MainGame.SCREEN_WIDTH,MainGame.SCREEN_HEIGHT])
#設置一下游戲標題
_display.set_caption("坦克大戰 v1.03")
#讓窗口持續刷新操作
while True:
#給窗口完成一個填充顏色
MainGame.window.fill(COLOR_BLACK)
#窗口的刷新
_display.update()
MainGame().startGame()
執行結果如圖 1-4 所示所示: