weixin_42743111 2018-07-19 17:05
浏览 3642
已结题

利用c语言及easy x制作一个坦克大战小游戏,要求代码简单基础,不超过800行最好

1、地图、坦克、道具、墙壁
(1)地图
坦克大战的地图为正方形,其上分布着不同的墙壁,分布着不同的坦克,共计3张地图。(loadimage制作,图像自寻)
(2)坦克
坦克分为我方坦克和敌方坦克,敌方坦克共3种,故坦克形态共四种,其生命值属性不同。
(3)道具
道具共计两种,一种为增加我方坦克生命值属性,一种为使出现在地图上的敌方坦克消失。
(4)墙壁
墙壁共计两种,一种为不能被打穿的铁墙,一种为能被打穿的木壁,此种墙壁经受一定数量子弹的攻击后将从地图上消失。
2、游戏规则
当游戏者点击初始界面开始按钮时开始游戏,载入第一关地图,生成我方坦克一辆,敌方坦克三辆,倘若生成的坦克不同则其对应的生命值属性也不同。
坦克能够发射子弹,当子弹与敌方坦克或墙壁碰撞,子弹消失,若坦克或墙壁对应的生命值属性小于等于零,则坦克或墙壁消失,否则不消失。
坦克速度与子弹速度不同,坦克在触碰到障碍物时需另寻道路,不能穿越障碍物,对于我方坦克来说墙壁是障碍物,对于敌方坦克来说墙壁和道具是障碍物,子弹在触碰到障碍物时消失,游戏者能够通过操作躲避子弹。
每一关坦克总量不同,每当敌方坦克消失一辆,则会从三个固定生成点处随机出现一辆敌方坦克,直到坦克出现量以达到这一关坦克总量为止。
当游戏者进入任意一关后,若地图上敌方坦克全部消失,而我方坦克未消失,则载入下一张地图或显示胜利界面。
二、主要功能
1、坦克、道具的生成
坦克的生成:当敌方一辆坦克生命值属性小于等于零时,该坦克消失,此时进行一次判断,若坦克数量小于三且坦克余量大于零,则在三个生成点处随机出现一辆敌方坦克。
道具的生成:当我方摧毁一定数量敌方坦克时,在地图任意处(不与地图上的坦克、墙壁重合)随机出现道具。
道具的消失:每一道具存在时间为(地图长宽的平均值/坦克初始的速度—)秒。道具不与敌方坦克作用。控制生成道具并对已经生成的道具存在时间递减,当clock等于0,道具消失。
2、坦克的前进
我方坦克的前进:通过函数调用键盘按键实现对我方坦克的操纵,设置程序使我方坦克在墙壁处无法继续前进。
敌方坦克的前进:敌方坦克自由运动,每当敌方坦克运动到墙壁处则进行一次选择随机向另外三个方向中的任意一个方向运动。
3、坦克、子弹的运动图像设置
坦克的运动图像:根据坦克的速度,调用函数使坦克的位置改变时,上一位置的图像被背景色覆盖,下一位置的图像被坦克图像覆盖。
子弹的运动图像:调用函数,当子弹的位置发生改变时,上一位置的子弹图像被背景色覆盖直至子弹消失。
4、碰撞
子弹与子弹碰撞:不论是敌方子弹与我方子弹碰撞还是敌方子弹与敌方子弹碰撞,两枚子弹同时消失,被背景色覆盖。
子弹与坦克碰撞:敌方子弹与敌方坦克发生碰撞,敌方子弹消失,敌方坦克生命值属性不减少。敌方子弹与我方坦克发生碰撞,敌方子弹消失,我方坦克生命值属性减少,若我方坦克生命值书香小于等于零,则我方坦克消失,我方子弹与敌方坦克发生碰撞情况类似。
坦克与坦克碰撞:敌方坦克与敌方坦克碰撞时进行一次判断使坦克进行一次转向,我方坦克与敌方坦克碰撞则双方坦克同时消失,显示失败界面。
子弹与木墙碰撞:子弹消失,木墙生命值属性减少,若减小至零,木墙消失。
子弹与铁墙碰撞:子弹消失,铁墙属性不发生任何改变。

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 安卓adb backup备份应用数据失败
    • ¥15 eclipse运行项目时遇到的问题
    • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
    • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
    • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
    • ¥50 成都蓉城足球俱乐部小程序抢票
    • ¥15 yolov7训练自己的数据集
    • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
    • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
    • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)