语言:c++

游戏引擎:cocos2d-x

一、项目介绍:

这个游戏我实现了90年经典坦克大战的部分功能

代码和图片资源链接https://download.csdn.net/download/yx______/10664180

二、 主要设计:

1.地图设计

2.坦克设计

3.子弹设计

4.数据管理

1.地图设计 地图从txt文档里面导入,通过stringstream来转化,把数字导入map数组里面,然后遍历创建地图元素,通过switch语句,不同的地图元素层级不一样

2.坦克设计:坦克我写了个坦克类,然后派生出己方坦克类,敌方坦克类,大部分共有的函数都在坦克类里面。

3.子弹设计:发射子弹时,子弹管理类会实例化一个子弹对象,子弹碰到东西后,会进行碰撞检测,如果坦克爆照后,会有一个爆照的效果,是一个7帧的动画,然后会显示获得的分数,否则就只有一个3帧的动画,爆照效果小一点。

4.数据管理:舞台类定义了一个精灵类型敌方坦克容器,当一个新坦克被创建时,容器的最后一个元素会被清除。玩家坦克类定义了一个静态成员生命,每关进去都是4条命。选择关卡类有一个静态成员关卡的数字,每次离开游戏场景时,这个值会加一。坦克管理类定义了一个地方坦克的数组,存储各种类型的坦克的数目,玩家坦克类定义了静态成员分数,每次敌方坦克死亡后都会加分,结算界面会与本地存储的最高纪录相比较,会更新

三、难点攻克

1.坦克移动

2.坦克动画

3.坦克碰撞检测

4.子弹碰撞检测

1.坦克移动:定义了一个全局变量类,这个类定义了bool型各个键的静态变量,在游戏场景类

按住上键后会把上键对应的变量设为true,停止按住时会设为false,然后在玩家

坦克类,每一帧都会检测各个变量的值,如果为true,就会让坦克执行对应的操

作。坦克速度设置的为1.5,移动时每一帧都会移动1.5个距离,坦克的图片每一

帧都会更新,转换方向时,从图集中调用图片时会换成对应方向的图片,让后就

会移动。

2.坦克动画:坦克在移动的时候有一个移动的动画效果,一般的坦克有2帧。定义了一个成员来

记录当前显示的帧数,每次移动的时候帧数会加一,当达到最大值时,又变回1。

地方最高级的坦克稍微麻烦一点,它还有几种颜色,等级4是银、绿交替,等级3是

银、黄交替,等级2是黄、绿交替,等级1是银,多弄些图片素材在图集中也就行了。

坦克不移动时,帧数不变,就不会有移动的效果了。

3.坦克碰撞检测:(1)坦克与条坦克碰撞检测:碰撞检测函数在坦克类里面,游戏场景类里面有

一个坦克的容器,与容器里面的每个坦克都比较一下坐标就行了。(2)坦克与地图碰撞检测:坦克类

有一个成员方向,然后通过舞台类的一个判断函数判断接下来去的那个格子是不是可以行走。

4.子弹碰撞检测:(1)子弹与坦克碰撞检测:判断子弹是由玩家还是敌方发出的
然后看碰到的坦克是玩家还是敌方,做相应的判断就行。(2)子弹与子弹碰撞检测:
判断是玩家的子弹还是敌方的子弹,敌方的子弹相互之间可以穿过去。
(3)子弹与地图的碰撞检测。与地图边界的碰撞检测:判断子弹的x,y值是否达到边界,达到边界后让其爆炸。
与地图障碍物的碰撞检测:判断子弹接下来去的格子是否可以打,然后执行对应的函数。

再就是打半块砖的问题:用的位运算来判断

90年经典坦克大战(cocos2d-x)相关推荐

  1. HTML5经典坦克大战及源码

    目录 一.简单介绍 二.具体界面 主界面 排行榜界面 组员信息界面 组员信息场景 三.部分代码 3.1 界面绘制的实现 6.2 坦克移动实现 3.3 发射炮弹 3.4声音处理 3.5计分 四.总结 一 ...

  2. 《HTML5经典坦克大战》游戏(代码)

    前几天粗略地学了HTML5,然后就用它写了一个<经典坦克大战>游戏. 现在想分享一下我写的代码,写得不好请大家多多指教. 给大家推荐一个网站,这个网站是为大学生而做,为方便学习编程的同学而 ...

  3. 【180718】FC经典坦克大战源码

    采用VB.NET开发的经典坦克大战FC游戏源码,模拟任天堂的坦克大战.全开源代码,测试请注意开启键盘大写.控制方式:大写的J K L I 控制坦克方向,F发弹. 注意事项: 开发环境为Visual S ...

  4. 【180622】VC++ 超经典坦克大战双人版

    超经典坦克大战双人版,VC++完整版,含声音.地图.资源文件,编译后请将Map.Sound.graphics拷贝至可执行文件同级目录内,否则出错.大家看看界面就知这游戏有多经典了吧?小时候没玩过的不多 ...

  5. Java实现的经典坦克大战小游戏

    Java实现的经典坦克大战小游戏 先看一下游戏结构: 有点多,没有耐心的可以不用看,这里先给出链接吧! 云链接:经典坦克大战 提取码:s9ai 这里就不介绍功能了,贴了一张游戏运行的截图,具体的功能自 ...

  6. python小游戏——怀念经典坦克大战代码

    ♥️作者:小刘在这里 ♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的,绽放,愿所有的美好,再疫情结束后如约而至. 目录 一.效 ...

  7. C++实现经典坦克大战(一)

    简介 本项目是基于easyX库来实现的一个C++版本的经典坦克大战的游戏界面. easyX库的下载及安装使用 easyX的全称为EasyX Graphics Library,是针对与Visual C+ ...

  8. 实战小例子 | 经典坦克大战的python实现

    ​ 目录 效果展示 开发工具 讲解部分 一:游戏介绍 二:主体构成(地图讲解为主) 三:游戏的进阶 相关资源 代码获取 效果展示 开发工具 编译器:python3.6.4 主要的第三方库:pygame ...

  9. 经典坦克大战1990--Windows下源码编译运行,培养编程兴趣,提高项目经验和能力

    1 介绍 ✨ 该经典坦克大战1990版,由C/C++编写,源码来自于GitHub的大佬krystiankaluzny,本文仅提供Windows下的编译&运行详细步骤,以供爱好者在此基础上进行开 ...

  10. 经典坦克大战的python实现

    欢迎加入我们卧虎藏龙的python讨论qq群:729683466 导语 看到封面 大家一定觉得很熟悉 这不就是小时候经常玩的坦克大战吗 现在有没有想过用python实现一下 了解一下游戏的内部结构是什 ...

最新文章

  1. 重磅!国内首个缺陷检测教程:理论、源码与实战
  2. 【百度地图API】如何调整结果面板的样式?如何获取指定页码的结果?
  3. LeetCode之Two Sum
  4. Mac openCV环境搭建
  5. 趣图:产品还没测试直接投入生产时
  6. 《ETL原理及应用》学习笔记 ·003【kettle的使用-1】
  7. c++ main函数调用 类中的枚举_为什么 Java 的 main 方法必须是 public static void?
  8. [转载] Dubbo架构设计详解
  9. Python进行UDP编程
  10. 安卓ps模拟器_电脑安装模拟器配置要求
  11. 关于Windows下模拟Shift+END(功能键)无效问题
  12. fiddler应用--保存下载的数据--以奇书网下载小说为例
  13. 学员管理系统(完整版)
  14. 分享几套Easypanel用户后台模板源码优化版
  15. 玩转微信|两种微信批量删除好友教程
  16. 配置Oracle到MySQL透明网关
  17. w8电脑桌面计算机不见了,w8桌面上我的电脑图标不见了怎么办
  18. elasticsearch-7.2.1启动报错
  19. Unity实战之王者荣耀段位计算
  20. 梁宇轩 mysql 语句学习一 对表的操作

热门文章

  1. Webtrends收购实时分析公司Reinvigorate
  2. springboot2中session超时,退到登录页面
  3. coreseek使用
  4. mysql 管理工具 绿色_飘云MySQL管理工具(MySQL数据库管理助手)V1.1 最新版
  5. javaweb课程设计之XXX管理系统
  6. 推荐WordPress 必备的常用插件及插件功能介绍
  7. virtualbox增强功能-VBoxGuestAdditions安装
  8. 侠客行,我是谁,谁是我
  9. oracle删除临时会话表,新一代QQ群机器人
  10. bjui刷新当前页签