项目搭建
本游戏主要分为两个对象,分别是我方坦克和敌方坦克。用户可以通过控制我方的坦克来摧毁敌方的坦克保护自己的“家”,把所有的敌方坦克消灭完达到胜利。敌方的坦克在初始的时候是默认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()
运行结果:

















![MapReduce [OSDI‘04] 论文阅读笔记](https://img-blog.csdnimg.cn/direct/5ce9c9cff2de4ad889f25585f1ac910c.png#pic_center)


