基于EasyX使用C语言开发直升机投弹游戏

本文详细描述了使用C语言和EasyX开发的一款直升机投弹游戏,包括功能分析(如坦克移动、分数计算、控制机制)、开发环境(VisualStudio2019)、数据结构设计和界面设计,以及基本功能需求和详细设计流程。
摘要由CSDN通过智能技术生成

开发目标

编写一个游戏能够实现“直升机打坦克”的游戏。

功能分析

  1. 游戏中有一个直升机在空中飞行,同时有多辆坦克在地面运动
  2. 每个不同的坦克具有不同的分数。
  3. 直升机通过释放炸弹完成对坦克的打击,每击中一辆坦克,则总分加上对应分数,每浪费一枚炮弹,总分减一分。
  4. 每辆坦克上有个数字,坦克从左往右移动,移到右端后会再从左侧出来;
  5. 飞机到了边界后掉头回来,用键盘的左右键可以改变飞机的飞行方向,按空格键飞机投放炸弹;
  6. 鼠标点击飞机,则飞机暂停飞行(悬停),再点击飞机,飞机继续飞行。
  7. 界面上能够显示直升机打击坦克动画效果,同时有控制按键,并实时显示用户名和当前比分。

开发环境及技术栈

  1. Visual Studio 2019 + C语言 + EasyX_2021;
  2. 链表;
  3. 本地数据存储

总体效果

在这里插入图片描述

功能需求

基本功能
  1. 输入用户名

    程序运行时先输入用户名,并把用户名显示在信息显示区中

  2. 输入坦克数量
    完成用户名输入后,程序需要输入游戏中的坦克数量,后续游戏加载对应数量的坦克

  3. 游戏过程控制
    在游戏过程中,分别有开始、结束、增加、退出按钮,用于对当前游戏过程进行控制。
    单击“开始”按钮,游戏开始,坦克开始间隔运动,同时从左向右匀速运动。
    单击“增加”按钮,能自动增加一辆坦克。
    单击“结束”按钮,本局游戏结束,得分清零,所有坦克消失,但不结束游戏。当再次点击“开始”按钮,则下一盘游戏从头开始,重新计分。

  4. 直升机状态控制
    能够响应键盘方向键(←和→)分别对应直升机的左右移动;能够响应空格键(SpaceKey)对应直升机释放炸弹;能够响应鼠标点击对应直升机悬停或者继续原有飞行状态。

  5. 炸弹状态控制
    当炸弹被直升机释放时,炸弹能够从直升机对应的位置呈现近似平抛运动,最终落到地面炸毁或者击中坦克炸毁,击中后炸弹和对应的坦克消失。

  6. 坦克状态控制
    坦克上包括对应的分数数字,随机产生,范围在1-9之间。同时坦克能够自动从左向右运动,当坦克到达有边界后,继续从左边界重新驶出。

  7. 显示得分
    游戏能够动态显示当前游戏得分。

  8. 保存用户名和分数
    当单击“退出”按钮后,能够将当前的用户名和得分存入文件。

界面设计

初始化窗口

在这里插入图片描述

用户名输入窗口如图所示。在游戏开始加载后,弹出用户名输入框。用户在框内输入玩家用户名,用于后续在游戏中显示用户名称。坦克数量初始化窗口如图所示。在完成用户名输入后,将弹出坦克数量初始化窗口。用户在窗口内输入对应的坦克数量,点击确定后即开始游戏。

游戏界面

界面分为三个区域:游戏区、控制区、信息显示区,如图1-3所示。
游戏区主要包括背景画面,以及玩家直升机、移动中的坦克等。控制区包含5个按钮,分别是“开始”,“结束”,“保存状态”,“增加”“退出”等功能。信息显示区分别显示当前玩家的用户名和当前游戏分数。
在这里插入图片描述

总体设计

划分为8个模块,分别是数据结构、初始化、键盘控制、鼠标控制、坦克控制、炸弹控制、文件处理和工具函数。

在这里插入图片描述

主要数据结构

  1. 坦克结构体
  2. 坦克链表
  3. 直升机结构体
  4. 炸弹结构体
  5. 炸弹链表
  6. 游戏数据结构体

详细设计

本周更新

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超级肌肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值