pygame--坦克大战(一)

项目搭建

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

运行结果:

image-20211126145251173

添加提示文字

相关推荐

  1. 项目-坦克

    2024-04-03 19:32:02       29 阅读
  2. pygame--坦克大战(二)

    2024-04-03 19:32:02       39 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 19:32:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 19:32:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 19:32:02       87 阅读
  4. Python语言-面向对象

    2024-04-03 19:32:02       96 阅读

热门阅读

  1. 当代深度学习模型介绍--Transformer模型

    2024-04-03 19:32:02       32 阅读
  2. 十八、Rust gRPC 多 proto 演示

    2024-04-03 19:32:02       32 阅读
  3. 入门级Python编程题(2)

    2024-04-03 19:32:02       37 阅读
  4. Transformer学习-最简DEMO实现字符串转置

    2024-04-03 19:32:02       27 阅读
  5. 【Linux】linux背景知识

    2024-04-03 19:32:02       36 阅读
  6. web蓝桥杯真题:健身大调查

    2024-04-03 19:32:02       34 阅读
  7. leetcode - 1248. Count Number of Nice Subarrays

    2024-04-03 19:32:02       36 阅读
  8. watch于watcheffect的区别

    2024-04-03 19:32:02       41 阅读
  9. STM32 GPIO输入检测——按键

    2024-04-03 19:32:02       46 阅读
  10. arm架构离线部署docker

    2024-04-03 19:32:02       36 阅读
  11. 短视频中可能触发降权的行为有哪些?

    2024-04-03 19:32:02       40 阅读
  12. Linux文件系统深入解析

    2024-04-03 19:32:02       38 阅读
  13. x264 arm64汇编分析 quant8x8_neon分析

    2024-04-03 19:32:02       36 阅读