vim Apache Pivot教程 莱斯分布 后端面试 firebase jvm vue框架 vue入门 后台模板下载 jquery获取下一个元素 js获取焦点事件 大数据驾驶舱 mysql默认密码 hbase集群搭建 html好看的字体 lora开发 matlab自然对数 python测试 python支持中文 python中import java输出当前时间 java获取本机ip java创建目录 linux服务器 groupby 0x0000004e 霜之祝福 matlab2016a安装教程 js转int 计算机网络自顶向下 din字体下载 防沉迷助手 古风头像女动漫 python爬虫代码 苹果放大镜 字符串分割成数组 ios删除描述文件 子节点 关闭页面 mix2s拆机
当前位置: 首页 > 学习教程  > 编程语言

Cocos2dx 4.0 游戏开发系列(C++)《国子祭酒的横板游戏开发之旅》【二、Demo 学习 Part2 】

2021/1/28 23:41:51 文章标签:

自我介绍:本人网名国子祭酒,若有同名纯属偶然,本人喜欢历史,原姓谢,谢氏历史上淝水之战成名的谢安是我祖上,谢安父亲谢衡 曾经担任 国子博士,国子祭酒、太子少傅、散骑常侍。对国子祭酒一名称深…

自我介绍:本人网名国子祭酒,若有同名纯属偶然,本人喜欢历史,原姓谢,谢氏历史上淝水之战成名的谢安是我祖上,谢安父亲谢衡 曾经担任 国子博士,国子祭酒、太子少傅、散骑常侍。对国子祭酒一名称深觉有意,遂取网名国子祭酒。

技术介绍:一名外行C++开发人员,(硬件测试和设备相关,主要Windows / Mac 搭建一些带UI的程序,C++ 4+年,Python4+年经验,Javascript 1+年经验 , Object-c 2+年经验)

制作动机:本人特别喜欢横板类的游戏,比如FC游戏热血系列、Nintendo 掌机上的一些精彩的横板都是我热爱的游戏,但是实实在在的没有找到一款我个人想象中的横板闯关类型的游戏,我决定动用我的资源自己做一个,在此之前Cocos2dx 被我选中,因为free,和C++都是我熟悉的东西,本文只为做游戏,不在代码优势性能优势上提供任何内容。

 

继昨天完成的部分分析,今天本着以添加地图的意图,发现了Tiled Map Editor 这样一个神奇的工具,使用这个工具的时候我一度以为只是类似PS这样的工具,经过一番折腾,得出这玩意可以做的事情还是很多的,本Part 主要以工具的作用和意义分析 顺带引入如何在代码中使用这个工具制作出来的xxx.tmx文件

一、关于Tiled Map Editor 工具(自行到官网下载),它是什么?用来做什么,为什么要用它?

分享一个今天在学习中找到的一个非常好的博客:https://blog.51cto.com/shahdza/1613527 感谢每一位努力的人,分享就是价值,这篇文章详细解释的很清楚,我在这里只做一个概述,它是什么,用来做什么。

1、制作一些图层(简单的说,比如背景你可以利用这个工具去画,可以制作地形 --这是我今天主要折腾的方向,最终我仍然不知道做好了之后如何让它在游戏中发挥作用,这个问题我留作后续收尾)

2、存储一些信息 (可以在对象层中添加一些对象信息)  我以为代码的东西,其实你首先要理解它给提供什么,然后你用它可以得到什么,类似这样的更由一点点抽到低,代码就不难。

这里主要说一下它在做游戏的主要作用: 绘制地图/地形 / 编辑敌方 或者 我方英雄位置,然后保存成一个 xxx.tmx的文件 ,cocos2dx 使用TMXTiledMap 这个Class来解析这个文件,将可以直接使用这个类完背景图 的显示,利用里面存储的位置信息去new 一些精灵之类的,顺便tiled map把图片做成了一块一块的,每一块都可以通过tile 坐标获取到对象,并且完成一些控制,比如变化大小,于是我觉得可以初步把它当作一个游戏项目的”加强版的json 文件制作工具

 

二、得到了工具制作而成的 xxx.tmx文件,Cocos 中可以如何使用呢 ?

Cocos2dx 提供了一个叫做 TMXTiledMap 的类,可以获取 图层&对象,TMXLayer&TMXObjectGroup 

TMXTiledMap 调用getLayer 获得 TMXLayer

TMXTiledMap 调用getObjectGroup 获得 获得Object 实际上是ValueMap ,可以通过key 访问 “x”/"y" 获取坐标。这个坐标目前还有一个疑点没有解决,y轴的值差一点点,x完全吻合,很奇怪,解决后再修改

然后本人在明白了它的具体使用后,生成了3个enemy.和一张背景图,取消了HelloWorld 的图标。如下就是今天的成果,界面使用的tiled map是工具提供的demo中做了小小的修改而来的。

 

三、坐标系问题,坐标系应该是游戏开发里面的重头戏,这次我们使用到了tiled map,比较重要的一些点如下

1、tile 都是左下作为锚点 水平向右是X ,垂直向上是Y(这些在上面贴出的博客里面有写,请移步到那边学习)

2、实际上Tiled Map 的 Tile 坐标 是左上是(0,0){(x,y)},分别水平向右 X递增 ,垂直向下 Y递增

3、Cocos2dx 使用的openGl  坐标原点是左下 为原点,水平向右是X ,垂直向上是Y ,今天制作的三个enemy 的y 轴坐标就是不对的,暂时不清楚原因。

 

下一Part ,开始添加主角精灵,带动画的那种。


本文链接: http://www.dtmao.cc/news_show_650289.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?