位置: 编程技术 - 正文

[cocos2dx学习笔记]用cocos2dx3.X完成塔防游戏王国保卫战--地图(一)(cocos2dx4.0教程)

编辑:rootadmin

推荐整理分享[cocos2dx学习笔记]用cocos2dx3.X完成塔防游戏王国保卫战--地图(一)(cocos2dx4.0教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:cocos2dx视频教程,cocos2dx4.0教程,cocos2dx4.0入门,cocos2d教程,cocos2d教程,cocos2dx视频教程,cocos2dx4.0入门,cocos2dx 教程,内容如对您有帮助,希望把文章链接给更多的朋友!

上面3张图是完成后的效果图

游戏已完成,除了英雄外,基本还原了%的游戏内容,一共关,种防御塔,&#;种敌人,如上图,以假乱真吧

下面从地图模块起介绍我的方法,如有更好的方法,请留言一起讨论,游戏资源下载原版游戏数据包,解压即可

推荐一款软件,TextureUnpackerRelease1.可以分割plist形式的图片,提高效率

经过一个月学习也发现之前有很多化简为繁的错误

----------------------------------------------------------------------------------------------------------------------------------------------------

地图模块我采用3层结构,从下到上分别为地图层,触摸层,按键层

地图层负责地图的绘制,添加防御塔、敌人等,触摸层负责拦截一些触摸事件,添加技能/商店技能触摸响应,同时兼顾防御塔升级菜单弹出层,按键层则负责技能和商店按键、玩家生命金钱状态,暂停按键,暂停菜单等。

-----------------------------------------------------------------------------------------------------------------------------------------------------

首先是地图层,新建一个基类BaseMap,基层与Layer

下面是我采用的plist&#;式,用文件的形式来保存每一关的信息

第一个key date保存关卡的信息包括初始金钱,初始生命与一关的敌人波数

第二个Key monster保存这一关的的怪物信息

其中分为3个array

第一层array保存本关所有敌人

第二层array保存本波敌人,比如有6波敌人,就有6个array,addwave(float dt)将读取这层

第三层array保存本波敌人这一帧(我设置1.0秒,即1.0秒刷新一次)刷新出的敌人,addmonsters(float dt)将读取这层信息

玩过KingdomRush的知道这个游戏一般有2-5条道路,每条道路有3个分支,path保存的就是分支,Road保存就是道路,type保存怪物类型,-1表示这一个1.0s不刷新敌人

读取如下

GroupMonster是用于保存敌人信息的类另外还需要读取本关路线,这个是原版数据包解压后就有的,例如Levelx.plist文件因为原版游戏针对低分辨率和高分辨率,使用的是同一个plist文件,所以我猜还需要对路线进行不不同分辨率的修正,将X轴乘以1.,Y轴乘以1.2加上敌人就正好可以在高清版上正确行走了(高分辨率对应xxx-hd.png,低分辨率对应xxx.png,我只做了高清的)[cocos2dx学习笔记]用cocos2dx3.X完成塔防游戏王国保卫战--地图(一)(cocos2dx4.0教程)

其中

path.at(x).at(x).at(x)即为敌人的路线

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

自定义一个精灵类来实现倒计时的图标,里面是一个ProgressTimer,用一个定时器来实现ProgressTimer的更新同时实现图标放大->缩小->放大这种呼吸灯的效果

接下来是Init()初始化这个图标对应图片可以数据包中找到初始化地图后调用restartWaveFlag()来开始计时

调用startRespiration(float dt)来实现动态效果并且更新ProgressTimer()

下面是BaseMap的addWave函数

当上面的waveFlag的ProgressTimer到达%后,则开始刷新这一波的怪物,初始wave = -1,更新按键层玩家信息后,进入waveEvent()waveEvent()在父类中只是开始addMonsters(float dt)的功能,没1.0f刷新一次怪(刷新最里层的一个array),刷新的怪物个数为读取文件的该层dict的个数。

在子类中,需要添加特殊的时间,比如上图猩猩BOSS这波怪,可以在此添加一些新时间,将最后的0S改成需要延时的时间,进行其他时间后再刷新这波敌人(比如酷炫的BOSS入场动画)

将路线赋给怪物,让怪物根据路线在地图上移动,即可实现怪物行走,怪物类将在下面章节中讲解

当这一层array刷新完毕,并且wave!=maxWave-1即还不是最后一波时

延迟S将waveFlag执行上述restart,重新开始计时

若是最后一波,将IsEnd标记置为true,等待结束画面

主要流程就是

1根据自己的&#;式读取关卡信息,包括路线,怪物数量,类型等

2读取地图

3计时刷新

因为需要仿照原版游戏,我采用的是progressTimer来计时,通过读取他的百分比来判断是否开始新的一波

4添加怪物

根据自己设计的逻辑添加怪物即可

地图类第一张就差不多了,下一章将讲解触摸层

-- 今天主要看了3D效果,场景切换,粒子,这三个都还算是简单。3D效果如下图:接着上回说,由上图我们可以看出来3D效果也是延时动画的一种,这个大

Cocos2dx3.0提高篇(十一)xml文档的读取与调用假设有一个名为label.xml的文档,内容如下:?!--?xmlversion=1.0encoding=UTF-8?--plistversion=1.0dictk

[置顶] Cocos2d-x《雷电大战》(5)-单例模式英雄飞机闪亮登场! 林炳文Evankaka原创作品。转载请注明出处

标签: cocos2dx4.0教程

本文链接地址:https://www.jiuchutong.com/biancheng/368912.html 转载请保留说明!

上一篇:将Cocos2dx 3.4 嵌入到MFC中(cocos2dx-js)

下一篇:2015-04-05(20150405农历)

  • 处置固定资产增值税税率
  • 当月减少的固定资产当月停止折旧
  • 成本核算的三种基本方法
  • 购买方怎么写分录
  • 生产型企业怎么退税
  • 销售费用变动率税收政策
  • 公司购买车辆抵扣税
  • 发票上的销货方是什么意思
  • 去年的进项发票今年还能抵扣吗
  • 小企业准则固定资产折旧每月折旧多折了
  • 未开票确认收入分录怎么做
  • 租别人厂房土地税房产税怎么交
  • 公司的钱怎么转出来
  • 先开票后预缴能跨年吗
  • 营改增相关规定
  • 变更税号后地税个税申报系统还是显示老税号怎么办?
  • 远期结汇账务处理分录
  • mac系统怎么玩游戏
  • 电脑中毒蓝屏了怎么办修复
  • gif图片查看软件
  • win11电脑怎么设置开机密码
  • 采购员出差预借差旅费时,应借记
  • 给客户回扣如何做账
  • 代开的发票需要企业盖章还是税务机关盖章?
  • 最大规模的科技公司
  • zendstudio怎么创建php项目
  • centos安装php环境
  • php获取浏览器ua
  • 个人咨询服务费怎么交税
  • linux 常用命令大全及其详解
  • less命令怎么用
  • 直接关联和间接关联
  • php如何解析json串内的数组
  • 资产账面价值大于计税基础产生递延所得税负债
  • 超过五年的未弥补亏损如何处理?
  • 抵扣税条件
  • 小规模纳税人的企业所得税税率
  • sqlserver分布式事务
  • 小规模纳税人应纳税额减征额怎么算
  • 出口退税三类企业影响
  • 公对公退款是不是很麻烦
  • 损益类账户怎么记入总账
  • 净资产增加数怎么计算
  • 货物赔偿款如何计算
  • 原材料 半成品
  • 银行贷款需要哪些材料
  • 政府会计工资代扣工会会费
  • 补发以前年度工资的账务处理
  • 工程款预缴税
  • 资产减值损失是负的意味着什么
  • 开办费没发票如何做账?
  • 企业预交所得税税率
  • 二次加工型的企业有哪些
  • 失控发票进项税转出企业无法承担所得税怎么办
  • 办土地证费用会退吗
  • 浅谈基于comsol的锂离子电池仿真
  • 编写高质量代码改善JAVA程序的151个建议
  • 如何查看连接网络的密码
  • 5分钟了解环保币gec
  • freebsd怎么样
  • solaris8+apache2+weblogic813+db2_82客户端+128 安装过程
  • xp系统插u盘没反应怎么解决
  • win7安装软件出现乱码
  • csinsm32.exe是安全的进程吗 csinsm32进程有哪些用处
  • win7如何开机修复系统
  • linux的trace
  • Remind_XP.exe - Remind_XP是什么进程 有什么用
  • win7系统资源管理器无响应
  • win7 64位系统使用360安全浏览器在网页中播放视频出现花屏的解决方法
  • win8 ui
  • win10系统附件在哪里
  • OpenGL Tutorial: (2) Creating an OpenGL Window
  • 用nodejs做的项目
  • 认识 认知
  • unity项目资源
  • ajax multipart/form-data
  • 如何编写一个完整的教学目标
  • 北京市国家税务局网站官网
  • 光伏发电备案证如何办理
  • 深圳纳税信息查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设