项目搭建
本游戏主要分为两个对象,分别是我方坦克和敌方坦克。用户可以通过控制我方的坦克来摧毁敌方的坦克保护自己的“家”,把所有的敌方坦克消灭完达到胜利。敌方的坦克在初始的时候是默认5个的(这可以自己设置),当然,如果我方坦克被敌方坦克的子弹打中,游戏结束。从面向对象分析该项目有以下类组成:
-
主类
主要包括开始游戏、结束游戏的功能。
class MainGame: ''' 游戏主窗口类 ''' def __init__(self) -> None: pass def start_game(self) -> None: ''' 开始游戏 ''' pass def end_game(self) -> None: ''' 结束游戏 ''' 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) -> None: pass
子弹类:主要包括子弹的创建、显示及移动的功能。
class Bullet: ''' 子弹类 ''' def __init__(self) -> None: pass def display_bullet(self) -> None: ''' 显示子弹 ''' pass def move(self) -> None: ''' 子弹的移动 ''' pass
墙壁类:主要包括墙壁的创建、显示的功能。
class Wall: ''' 墙壁类 ''' def __init__(self) -> None: pass def display_wall(self) -> None: ''' 显示墙壁 ''' pass
爆炸效果类:主要展示爆炸效果。
class Explode: ''' 爆炸效果类 ''' def __init__(self) -> None: pass def display_explode(self) -> None: ''' 显示爆炸效果 ''' pass
音效类:主要播放音乐。
class Music: ''' 音效类 ''' def __init__(self) -> None: pass def play_music(self) -> None: ''' 播放音效 ''' pass
显示游戏窗口
在游戏设计的前期,要先创建游戏的界面,也就是要为所设计的游戏创建一个窗口
import pygame
# 设置通用属性
BG_COLOR = pygame.Color(255,255,255)
SCREEN_WIDTH = 700
SCREEN_HEIGHT = 500
class MainGame:
'''
游戏主窗口类
'''
# 游戏主窗口对象
window =None
def __init__(self) -> None:
pass
def start_game(self) -> None:
'''
开始游戏
'''
# 初始化游戏窗口
pygame.display.init()
# 创建一个窗口
MainGame.window = pygame.display.set_mode((SCREEN_WIDTH,SCREEN_HEIGHT))
# 设置窗口标题
pygame.display.set_caption('坦克大战1.0')
# 刷新窗口
while True:
# 给窗口设置填充色
MainGame.window.fill(BG_COLOR)
pygame.display.update()
def end_game(self) -> None:
'''
结束游戏
'''
pass
if __name__ == "__main__":
# 调用MainGame类中的start_game方法,开始游戏
MainGame().start_game()
运行结果: