pygame--坦克大战(一)

news/2024/12/22 14:25:07/

项目搭建

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

运行结果:

image-20211126145251173

添加提示文字


http://www.ppmy.cn/news/1405452.html

相关文章

Redission--分布式锁

Redission的锁的好处 Redission分布式锁的底层是setnx和lua脚本(保证原子性) 1.是可重入锁。 2.Redisson 锁支持自动续期功能,这可以帮助我们合理控制分布式锁的有效时长,当业务逻辑执行时间超出了锁的过期时间,锁会自动续期,避免…

【大数据运维】Hbase shell 常见操作

文章目录 一. DDL1. 表的DDL1.1. 创建表1.2. 删除表 2. 列族的DDL2.1. 增加一个列簇2.2. 删除列族2.3. 修改列族版本(ing) 二. DML1. 插入与更新数据2. 删除数据3. 清空表 三. DQL1. scan:查一批数据1.1. 查询全部1.2. 过滤rowkey1.3. 过滤列…

CS架构---Socket基础

目录 一、Socket简介1.1 通信模型1.2 类型1.3 创建和使用:1.4 地址族 二、客户/服务器模式2.1 服务器端(Server Side)2.2 客户端(Client Side)2.3 通信方式2.4 角色分工2.5 优点 三、Socket实战四、常见应用场景 一、S…

C语言程序10题

第101题 (10.0分) 难度:易 第2章 /*------------------------------------------------------- 【程序填空】 --------------------------------------------------------- 功能:计算平均成绩并统计90分以上人数。 --…

【微服务篇】深入理解分布式消息队列系统

分布式消息队列是一种在多个服务器、应用或服务之间进行消息传递的技术。它使得各个独立的组件可以通过异步消息进行通信,提高了系统的可扩展性、解耦性和可靠性。 典型应用场景 1. 异步处理 在许多系统中,某些任务的处理可能需要较长时间&#xff0c…

Stable Diffusion 推荐硬件配置和本地化布署

Stable Diffusion简介 Stable Diffusion是由Stability AI开发的一种强大的文本到图像(Text-to-Image)生成模型,它能够根据用户提供的文本描述,生成与之相关的高质量、高分辨率图像。下面我从原理、特点、应用三个方面对Stable Diffusion作简要介绍: 1、原理:Stable Diffusion…

什么是智慧驿站?智慧驿站有哪些功能?创新型智慧公厕解说

近年来,随着智能科技的迅速发展,人们对于城市生活的期望也逐渐提升。作为城市基础设施的一部分,智慧驿站应运而生。它不仅是一座智慧公厕,更是集合了多种功能,给我们带来全新的城市生活体验。本文以智慧驿站智慧公厕源…

前端调试工具之Chrome Elements、Network、Sources、TimeLine调试

常用的调试工具有Chrome浏览器的调试工具,火狐浏览器的Firebug插件调试工具,IE的开发人员工具等。它们的功能与使用方法大致相似。Chrome浏览器简洁快速,功能强大这里主要介绍Chrome浏览器的调试工具。 打开 Google Chrome 浏览器&#xff0c…