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