cocos2dx3.2专题提供cocos2dx3.2的最新资讯内容,帮你更好的了解cocos2dx3.2。
首先将splash,像素480 * 800大图如下图: 切成四个小图(480 * 200)命名:SplashSlice_01.png,SplashSlice_02.png, SplashSlice_03.png, SplashSlice_04.png 然后再代码实现如下: //  SplashScene.cpp //  DontSaveMeGame // //  Created by Mr Gan
嘿,秀一下效果图: 让这四张美女图片,循环的向上滚动,那么如何做的呢? 首先准备四张图片分别命名: Beauty1,Beauty2, Beauty3,Beauty4 然后在Splash类中添加_vcSprites,用来保存精灵 class SplashScene : public cocos2d::Scene { public:     CREATE_FUNC(SplashScene);    
上一章是说明使用ClipplingNode制作遮罩,以显示不规则图形。但是这样一直到Android端,却在部分手机中发生了问题。 具体问题表现为:白屏,只有边界(右上角)有矩形色块。 这里其实是框架对Android手机引用OennGL时,设置上没有启用stencil buff的问题。 解决方案,在onCreateView构造函数中添加: Cocos2dxGLSurfaceView glSurfac
现在,对于游戏的基本准备都已经做好,之后需要考虑的,就是游戏逻辑的处理,主要考虑一下几个方面: 1 判断方块是否已经落下停止,并下落新的方块; 2 方块落下后,判断是否符合消行条件,进行消行; 3 根据下落或者消行进行计分。 这些判断,需要定时处理,因此这里需要使用到默认更新的update。 在初始化中,需要调用: this->scheduleUpdate(); 如果需要停止更新,可以调用: th
前言: 上次写了一个消灭星星,很多人都回复了我,并且提出了宝贵的意见,先感谢大家啦~上几个月我发现了一个很好玩的游戏——《BattleHeart》,心里面想着,这么好的游戏要是可以联机跟好朋友一起玩(就像CS那样)那就爽歪歪了,于是就动手开始模仿这款游戏,并且为其加入网络模块。可惜,因为对多人网络游戏开发并不熟悉,虽然最后还是开发出来了,但是效果却差强人意。不过在开发过程中学到了很多新的知识和网络
一、前言 关于骨骼动画,如果大家不知道是什么东东的话,可以先百度一下。 如果大家有去玩过我介绍的《BattleHeart》的话,你会发现,里面用到的就是骨骼动画,而且骨骼动画有几个帧序列动画无法比拟的优点: 1)不需要太多的资源,就可以实现多种动画 2)动画效果可以自行设置(很适合像我这种没有美工MM辅助的苦逼) 3)可以随意替换,如果你有认真观察《BattleHeart》的话,你会发现,当你的英
一、前言 在一个游戏里面,需要用到的数据一般都是由游戏策划提供的(这里的策划还是由我自己担任啦哈哈)。什么是需要用到的数据?例如我创建一个角色A,A有他自己的攻击力,防御力,速度等,再创建一个角色B,B也有自己的攻击力,防御力,速度等。每个角色都有一些基础属性,但是对应不同的角色,属性的值有可能不同。我们不可能在代码里面把这些数据写死。最好的办法是从一个文件(通常是Excel表格)中读入数据,这样
一、前言 假设你已经看懂了前面三节,那么接下来我们就开始进入真正的开发啦~~ 二、正文 1、预先加载 首先我们先谈谈预先加载,什么叫预先加载,就是在资源没有被用到的时候就先把资源加载到内存,等要用的时候直接从内存里面获取就好。 这样的好处是当用的时候会省去加载的时间,但是坏处就是占用一部分内存,这是一个时间与空间的选择问题。 游戏一开始进入的是MenuScene bool MenuScene::i
一、前言 前面几节好像与我们一开始说的游戏不太相关,现在我们正式进入战斗场景的开发。 不过凡事不要心急,要循序渐进,我们先搭建一个能够让角色在上面行走的战斗场景吧。 二、正文 首先精简一下Role类,让他能够实现移动功能就好了。 顾名思义,role就是角色,在战斗场景出现的一个一个人都是一个role,废话不多说,直接贴上经过精简过得Role头文件 class Role : public Node{
一、前言 一般来说,我们在做一个稍微有点智能的实体的时候都会用到状态机。这里我没有用到,但是我也为角色设置了几种状态。 如果大家看了上一节,也完成了角色的基本移动的话。对比过我一直说的《BattleHeart》之后,你会发现,现在的控制移动操作也太挫了,既没有那一条拉出来的导航线,也没有角色被选中的效果。所以接下来我们要对我们的基本控制操作加入一些效果。 二、正文 1、角色的状态 来来去去我们的角
一、前言 至此,我们的战斗场景关于角色移动已经讲得七七八八了。不过还是有一些问题需要注意注意。 二、正文 在第五节里面我们讲了FlightLayer里面有一个很重要的容器m_rolesArray,并且说道其初始化是由以下两个函数负责的。 void FlightLayer::initTeam(const HeroMessage& h1,const HeroMessage& h2,const Hero
一、前言 前面我们已经基本学会了怎么让角色走起路来而且也做了很多的优化。下面是时候开始战斗了。不过还是不要急,我们先暂时不引入英雄和怪物这两个类(毕竟只要是Role就可以打架,哪怕是英雄打英雄) 二、正文 先大致说一下整个思路: 1.选择角色并且可以拉出一条导航线出来(之前已经做了) 2.判断导航线的终点,如果终点刚好是在一个Role的身上,那么..嘻嘻就打他了。 3.角色移动到目标身边 4.角色
一、前言 上一节我们讲完了攻击,其实也只是攻击者一方一厢情愿地播放自己的攻击动画罢了,被攻击的那一方根本不知道发生了什么,攻击者和被攻击者还没有联系起来。 所以,我们就引入了子弹这个东东。 二、正文 一开始我在开发的时候想到用物理引擎,后来想了想还是算了,一是难控制,二是可能会遇到一些问题(例如两个人之间可能会发生碰撞。。) 所以还是将错就错,直接用update函数解决问题吧。 子弹,顾名思义,就
一、前言 先说明一下,Role类其实是有很多属性的 protected: /*与战斗相关的数据*/ int m_id; //id Role* m_attackTarget; Role** m_attackTargetPtr;//攻击目标 Point m_desPoint;//目标位置 ROLE_STAT en_stat; //当前状态 FlightLayer* m_la
一、前言 先补充一下,英雄的死亡 英雄的死亡,我们要在FlightLayer对m_rolesArray进行清除操作 void FlightLayer::cleanNullPtrInArray(){ auto it = m_rolesArray.begin(); while(it != m_rolesArray.end()){ if((**it)->getRoleStat() == Role
一、前言 人工智能,这是一个很深奥的话题。我们这里的怪物也要智能一点,至少会自动找英雄来打吧。 二、正文 现在我才开始看怪物的头文件 class Monster : public Role{ public: Monster(); static Monster* create(const std::string& name,FlightLayer* layer); void initMonst
一、前言 怪物已经变聪明了,我们的英雄不变得厉害点怎么行呢 二、正文 其实技能这个问题纠结了我好久,因为每个角色的技能都不一样(参考英雄联盟),我当初也想把技能做得多姿多彩的。所以我就想在代码中嵌入lua,可惜小弟不才,虽然最后弄明白了怎么搞,但是发现已经太迟了(应为要把之前的自定义的类都转成lua接口)。所以采用了一种很笨很笨的方法。 将技能之前,先看SkillMessage 还记得XXXMes
一、前言 整个教程快接近尾声了。还有一个暂停功能需要添加 二、正文 首先,我们要在右上方添加一个按钮 bool FlightLayer::init(){ MenuItemImage* pauseBtnItem = MenuItemImage::create("UI/pauseBtn.png","UI/pauseBtn.png",[=](Ref* pSender){Director::getI
一、前言 这次的Flighting系列教程一口气写了2天,到这里就要结束了。接下来我说明补充一下一些前面没有提到,但是我觉得有必要讲一下的。 二、正文 1.怪物的出场 前面已经说了一个个的XXXMessageUtil,其实StateMessageUtil是比较特别的。首先我们先看看StateMessage的Excel表(关卡) 前面的字段大家可以参透参透,我主要讲一讲monster字段 monst
游戏基本的逻辑功能之前已经完成,之后的问题就是如何去控制游戏中的方块。在电脑上,很显然就是使用键盘最为直接,而在手机上,考虑上要让操作方便,这里采用的是用重力感应控制左右移动,点击屏幕进行方块的旋转。 下面,就是加入这些事件的方法: 加入键盘事件,需要重写方法: virtual void onKeyPressed(cocos2d::EventKeyboard::KeyCode keyCode, c