cocos2d-3.x
文章平均质量分 63
最后的牛仔
不断的学习,追求技术上的自由!
展开
-
Cocos2D3.x学习笔记之ActionManagerTest
ActionManagerTest原创 2015-03-03 22:56:39 · 771 阅读 · 0 评论 -
Natification:Cocos中的观察者模式
cocos中的观察者:NotificationCenter:通知中心NotificationObserver:通知的观察者代码:class CC_DLL __NotificationCenter : public Ref{ friend class ScriptHandlerMgr;public: /// 构造函数 __NotificationCenter()原创 2015-09-01 23:56:39 · 633 阅读 · 0 评论 -
ClippingNode的使用之为节点添加动态光效
效果:游戏中经常会用到这种效果,今天,实现下,方便以后使用。实现方法:1.添加ClippingNode2.为ClippingNode添加模板(即我们要添加动态光效的模板)3.添加光效到ClippingNode中4.将ClippingNode添加到节点中下面,将把这个过程封装到一个方法中,用的时候,直接调用这个方法就OK了。源码:原创 2015-08-31 19:34:20 · 576 阅读 · 0 评论 -
cocos2d-x实现打字机效果
打字机的效果,一般出现在对话和游戏的剧情介绍中(现在已经很少用了,有几个人一个字一个字的看剧情呀)。这里有两种方案实现了打字机的效果。一种是使用系统字体,一种是使用TTF字体。下面一一介绍。1.使用LabelTTF实现。在cocos3.x中Label有了新的API,新的Label将每个字符作为一个Letter来存储。通过getLetter(int index)方法得到。得到的Lette原创 2015-12-09 11:35:58 · 2906 阅读 · 3 评论 -
cocos中使用Control遇到的一点小问题
cocos中有几个控件以control开头,这些控件功能上是不错的。最近,做开发遇到了一个小问题,我的程序中用到了两个control的子控件,ControlSteper和ControlSilder,其实单独用是没有问题的,但是,我的需求是要保持这两个控件的值是一样的。所以,我在Steper的回调中,重新设置Slider的值,在Slider的回调中重新设置Steper的值。思路是这样的,我也感觉自己原创 2015-11-24 19:44:07 · 541 阅读 · 0 评论 -
Cocos2d-x 3.x中读取csv数据文件
游戏开发中,数据文件通常是存储在xml,json,csv等格式的文件中,这里实现了CSV文件的解析。1.为什么是CSV? 数据文件为什么存储在CSV文件中呢? a,同样的数据放到CSV中要比放在xml和json中要小。 b,CSV的解析也比较简单。 c.策划编辑方便,策划比较擅长使用excel,使用CSV能够使用excel直接导出,不用再解析为其他格式。2.原创 2015-12-15 16:23:34 · 1179 阅读 · 0 评论 -
cocos2d-x 3.x相应键盘事件
3.x中使用键盘事件相对2.x中简单了不少,几句话就解决问题了。键盘的响应事件也属于event的范围,需要创建一个EventListener,然后,添加到事件分发器中就好了。键盘的相应事件有两种,按下事件和抬起事件。cocos的Demo在E:\cocos2d-x-3.6\tests\cpp-tests\Classes\NewEventDispatcherTest这个目录下,LabelKey原创 2015-12-09 17:16:33 · 3802 阅读 · 1 评论 -
mac搭建cocos2d-x安卓开发环境
看了cocos2d-x官方的关于配置安卓环境,按照官方的步骤走有一些地方走不通,这里做个笔记。1.下载所需的资源NDK:这个可以在cocos中找到,直接下载下来就OK了。SDK,eclipse:官方的教程用的是eclipse配置好的资源,这个貌似在安卓的官方网站有,但是cocos的资源中给出的SDK不是这样的,所以,自己找了个网站下载:http://www.cnblogs.com/原创 2015-10-20 12:42:46 · 755 阅读 · 0 评论 -
强行删除mac中的文件
强行删除mac中的文件插一段话:为啥要强行删除呢?其实我也不想,但是,我在自己的mac 上安装了cocos 3.10,又删除后,想配置个低版本的cocos结果发现我的.bash_profile不能修改了,被锁定,而且我没有权限解锁。不知道是我操作的原因,还是怎么回事,总之,遇到这个情况,让我感激很蛋疼。之前也修改过.bash_profile文件,但是,没有遇见这么悲剧的情况。在尝试root用户无果后原创 2016-02-25 00:01:54 · 17974 阅读 · 0 评论 -
cocos2d-x lua 3.6 解析json
cocos2d-x lua 解析json在游戏开发过程中经常使用json文件作为存储本地数据的文件,这里介绍下cocos2d-x lua 3.6中如何使用json文件。思路:将json文件当作文本导入到程序中通过引擎提供的json库解析json数据文件为table代码 local str = cc.FileUtils:getInstance():getStringFromFile(con原创 2016-02-25 18:52:07 · 1681 阅读 · 0 评论 -
cocos2d-x 3.6 lua文件加密
cocos2d-x 3.6 lua 文件加密这里没有采用通用的加密方法,使用了类似于图片加密的方法,对文件中的每个字符进行加密,读取的时候,根据加密的key值进行解密。找到引擎加载Lua文件的接口cocos2dx_lua_loader添加解密代码if (chunk != NULL&&chunkSize > 0){ for (int i = 0; i < chunkSize; i++)原创 2016-02-29 18:47:50 · 1352 阅读 · 0 评论 -
骨骼动画中为每个骨骼设置单独的颜色
骨骼动画中为每个骨骼设置单独的颜色最近在做一款颜色类的游戏,用到了骨骼动画,但是,不同的骨骼需要有不同的颜色。在cocos的Node中,有一个setColor的方法可以设置颜色,但是,cocos中设置颜色,每个节点会得到父节点的颜色,并跟父节点的颜色保持一致。也就是说,在不改动cocos源码的情况下,这个需求无法实现(也可能是我没找对方法)。所以,在这里我修改了cocos中Node的源码,让Node原创 2016-04-15 11:50:12 · 2517 阅读 · 1 评论 -
华容道07之胜负的判定
1.关卡数据的修改关卡数据中有了整个地图的排布,但是,还没有出口的位置,在华容道中,出口的位置也不是单一的,所以,需要将出口的位置信息放入关卡数据中,方便在游戏中进行胜负的判定。在关卡数据中添加了出口的坐标,这下子数据应该是完备了。至于代码这里就不写了,到时候大家看源代码吧!2.胜利的判断添加了一个moveEndCallbac原创 2015-05-06 21:14:05 · 1064 阅读 · 0 评论 -
华容道08之菜单界面和选关界面的添加
当作最后一篇吧,虽然还不能说是个游戏,但是,作为一个瞎玩的Demo感觉也可以了。 玩家信息类Profile: Profile设计为一个单例类,在游戏中主要负责保存和读取玩家的信息,其实,Demo中没有什么好保存的信息,但是,在选关的时候需要把选关的ID保存下来,在GameLayer中使用,所以,暂时添加了这个类。.h#ifndef _PROFILE_H_#defi原创 2015-05-06 21:21:26 · 1444 阅读 · 0 评论 -
cocos2D-x3.4 新建项目的批处理文件
做了一个3.4版本的批处理文件,分享下。希望对新手有帮助。新建个txt,将下面的代码拷进去,改后缀为.bat,就OK了,原理不说了,有兴趣学学批处理吧!echo offecho 第一步请输入要创建的项目名称,例:CocosTestset /p name=echo 第二步请输入要创建的项目的包名 例:com.dd.CocosTestset /p pack=cocos new %na原创 2015-04-03 00:42:45 · 596 阅读 · 0 评论 -
飞机大战开发05按角度发射的子弹和拖尾子弹的实现
多角度的子弹:这个的实现可以仍然用MoveBy动作来完成,设定一个子弹偏移的角度,计算出到出屏幕,子弹在x轴和y轴上移动的距离,移动就OK了。上代码: void GameLayer::createBulletByAngle(float angle){ Size screenSize = Director::getInstance()->getWinSize() ; Vec2原创 2015-04-10 18:37:56 · 7744 阅读 · 1 评论 -
华容道06--屏幕点击事件和角色间的碰撞
角色的碰撞检测原创 2015-04-14 20:34:27 · 1322 阅读 · 0 评论 -
华容道03---关卡类的设计和数据读取
关卡类中需要有没关初始的地图数据,即每个角色的位置。属性:ID:所有RoleID:用到哪个Role写哪个,每个ID用‘,’分开对应RoleID的行列:读取的时候有一个Row数据和一个Col数据,将这两个数据合并为1个Pos数据。 Level.h #ifndef _LEVEL_H_#define _LEVEL_H_#include "cocos2d.h"USI原创 2015-04-14 20:24:17 · 2184 阅读 · 0 评论 -
华容道04---RoleSprite的设计
RoleSprite负责显示角色原创 2015-04-14 20:26:55 · 1149 阅读 · 0 评论 -
华容道01--分析
一直想写一个华容道的游戏,现在就通过学习Cocos2D3.x写一个华容道的游戏吧。这个游戏的要求是,最后生成安卓项目,安装到自己的手机上玩玩吧!开发周期初步定在2-3天。 华容道有多种开局方式,不同的开局方式就是不同的关卡,所以需要有一个选关界面。 再就是游戏界面。 在华容道中,每个元素所占的空间是一定的,兵是最小的,也是最基本的单位,最大的占四个单位空间,然原创 2015-04-14 19:39:42 · 1820 阅读 · 0 评论 -
飞机大战开发02之添加玩家飞机
玩家的飞机直接用Sprite来创建代码:GameLayer.hSprite * m_pPlayerPlane ;GameLayer.cppm_pPlayerPlane = Sprite::create("myPlane.png") ;m_pPlayerPlane->setPosition(Vec2(screenSize.width / 2,screenSize.height原创 2015-04-08 20:05:25 · 498 阅读 · 0 评论 -
飞机大战03之飞机发射子弹,添加敌人
飞机发射子弹:弹幕,是雷电游戏的精华。这就需要对子弹的运动轨迹进行控制。先做一个最简单的子弹发射,后面再添加各种弹幕(实际上主要是研究弹幕)说是最简单,其实也是最普通的子弹发射,产生一个颗子弹移动就OK了。方法:做一个子弹发射的计时器,产生子弹,子弹做MoveBy动作就OK了。代码:GameLayer.cppvoid GameLayer::fireSchedule(fl原创 2015-04-09 10:19:30 · 5132 阅读 · 0 评论 -
飞机大战开发04子弹与敌机的碰撞检测
先是敌机与玩家子弹的碰撞检测:代码:GameLayer.hvoid GameLayer::update(float dt){ for (int i = 0 ;i < m_pEnermyVec.size();i++) { Sprite * pEne = m_pEnermyVec.at(i) ; for (int j = 0 ; j < m_pPlayerBullet.siz原创 2015-04-09 10:24:13 · 5593 阅读 · 0 评论 -
华容道05--关卡数据的显示
前面写了那么多,现在就是用前面信息的时候,把Level中的关卡显示出来。首先,需要有一个关卡类的引用,这样才能得到我们想要的信息。然后,需要一个Vector来存储RoleSprite。 代码:GameLayer.hprivate: Level * m_pLevel;//<关卡数据的引用 cocos2d::Vector m_pRoleSpriteVec ;//原创 2015-04-14 20:29:48 · 1729 阅读 · 0 评论 -
华容道开发02---角色类的设计与数据读取
角色类的设计和数据读取原创 2015-04-14 20:21:49 · 1221 阅读 · 0 评论 -
飞机大战开发01之添加主逻辑层,显示背景的移动
GameLayer负责游戏的主逻辑的实现:代码: GameLayer.h#ifndef _GAME_LAYER_H_#define _GAME_LAYER_H_#include "cocos2d.h"USING_NS_CC ;class GameLayer : public Layer{public: static cocos2d::Scene* createS原创 2015-04-08 19:59:50 · 2182 阅读 · 0 评论 -
cocos2dx Sprite使用同一张纹理会只调用一次渲染
cocos2dx3.x中,Sprite调用draw函数时会添加一个TrianglesCommand类型的渲染指令。CCSprite.cpp_trianglesCommand.init(_globalZOrder, _texture, getGLProgramState(), _blendFunc,原创 2017-02-22 01:12:35 · 2345 阅读 · 0 评论