cocos2dx
李正浩大魔王
广州 佛山
展开
-
[cocos2d-x]关于动画
声明一下:看见这篇文章总结的已经非常好了,没必要再去自己到处东翻西找了,链接:http://shahdza.blog.51cto.com/2410787/1546998【唠叨】基本动画制作需要用到CCAnimation类,用于存储动画相关的信息。以及由CCActionInterval继承的CCAnimate动画动作。 还有一些在创建动画动作的过程中,可能会用到的一些类CCSpriteFra转载 2017-07-11 21:56:19 · 258 阅读 · 0 评论 -
[cocos2d-x]飞机大战 遇到的bug和总结(二)
第一点声音文件最好不要使用mp3格式,因为我在同时使用背景音乐和playeffect()的时候,出现了bug,两者的音效不能同时出现(应该是格式问题),并且声音在windows上运行的时候加载非常慢(当然也可以通过提前加载实现)。另外推荐一个免费的在线音频视频文件转换网站,我觉得非常好用: 网站地址点这里!第二点想要实现游戏的暂停和恢复,只需要使用下列两行代码就行:Director::getIns原创 2017-08-04 22:35:53 · 545 阅读 · 0 评论 -
[cocos2d-x]我发现的内存管理机制的一些问题
总结一些特性cocos2dx的引用计数机制: 1、所有类都继承自ref类,继承自ref类的类,都由autoreleasePool类来管理(其中容器是std::vector),而autoreleasePool类又由poolManager来管理(其中的容器是std::deque)。 2、类对象在创建时候,调用create()方法,这个方法中又调用了autorelease()方法,将这个原创 2017-07-30 21:22:55 · 417 阅读 · 0 评论 -
[cocos2d-x]捕鱼达人炮台射击角度的旋转实现
话不多说,先上图,下面是实现代码(在后面会具体讲解实现过程): //第一步:将炮台的坐标转换为世界坐标下的坐标点 CCPoint location = this->getParent()->convertToWorldSpace(this->getPosition()); //第二部:计算出两个向量之间的夹角 float angle = ccpAngleSigned(ccpSub(tar原创 2017-08-15 21:50:53 · 4001 阅读 · 2 评论 -
[cocos2d-x]registerScriptHandler和registerScriptTapHandler区别
一 、调用registerScriptHandler 的对象不同相应的响应函数和调用方式也不相同 1、 对象为layer时调用方式为:local function onNodeEvent(event) -- event 包括exit enter if event == "exit" then do something ....转载 2017-09-10 22:35:32 · 2220 阅读 · 0 评论 -
[cocos2d-x]从源码角度思考convertToWorldSpace()与convertToWorldSpaceAR()坐标系的转换
convertToWorldSpace()话不多说,先上源码,之后再慢慢讲解: (5和6图截图的时候重复了,这里就不弄出来了) 只要通过图1到图8中我写的注释进行分析(不懂的地方可以自己去翻一下cocos2dx的源码,这样可能更直接) 所以结论就很明显:最后的结果=子节点在父节点中的坐标+父节点在世界坐标系下的坐标原创 2017-09-21 22:05:59 · 2101 阅读 · 0 评论 -
[cocos2d-x]捕鱼达人鱼和子弹的碰撞检测
检测方法如图所示,步骤在注释中也写的很清楚了。原创 2017-10-29 23:30:40 · 3297 阅读 · 1 评论 -
[cocos2d-x]关于声音和音效
使用声音音效CocosDesion实现了简单易用的SimpleAudioEngine类,为了使用它,我们只需引入他的头文件即可:#include "SimpleAudioEngine.h"using namespace cocosDenshion;预加载加载音乐和音效通常是个耗时间的过程,因此为了防止由加载产生的延时导致实际播放与游戏播放不协调的现象。在播放音效和音乐前,...转载 2017-07-18 21:14:54 · 826 阅读 · 0 评论 -
[cocos2d-x]飞机大战 遇到的bug和总结(一)
Sequence* sequence=Sequence::create(actionMove, actionFinished,NULL);create方法的最后必须加上NULL,不然会报出异常,异常的信息为_last,_split为???,内存无法访问actionFinished=CCCallFuncN::create(this,callfuncN_selector(Enemy::removeEne原创 2017-08-02 22:49:55 · 896 阅读 · 0 评论 -
[cocos2d-x]用getContentSize()返回的值用CCLOG打印必须用%f
今天写代码,又遇到了一个bug,开始还以为是我自己哪写错了,没想到竟然在这里出错? 而width和height的类型是float类型,为什么必须用%d打印?接着我查看了一下源码: 如果没理解错的话,CCLOG用的应该是printf打印,那么接下来就很好懂了,我又去做了一个测试:%d输出float类型有一些基础必须要知道: 1、float类型是采用IEEE754标准,1位数符,8原创 2017-08-19 11:10:25 · 755 阅读 · 0 评论 -
[cocos2d-x]关于CC_CALLBACK
CC_CALLBACK的代码// new callbacks based on C++11#define CC_CALLBACK_0(__selector__,__target__, ...) std::bind(&__selector__,__target__, ##__VA_ARGS__)#define CC_CALLBACK_1(__selector__,__target__, ...)原创 2017-07-09 21:58:35 · 458 阅读 · 0 评论 -
[cocos2d-x]关于菜单项
菜单项的分类 MenuItem:菜单项类,它是一个虚基类,因此必须实现它的子类,再把子类对象赋给父类指针。 MenuItemFont:字体菜单项。 MenuItemAtlasFont:字体菜单项,和第一个的区别在于,它是用字体配置文件来设置字体。 MenuItemImage:图片菜单项。 MenuItemLabel:标签菜单项。 MenuItemSprite:精灵菜单项 MenuIte转载 2017-07-12 22:37:17 · 444 阅读 · 0 评论 -
[cocos2d-x]关于坐标系
本文从cocos2dx官网看到,搬运过来学习一下。cocos2d-x3.X的坐标系Cocos2d-x坐标系和OpenGL坐标系相同,都是起源于笛卡尔坐标系。笛卡尔坐标系中定义右手系原点在左下角,x向右,y向上,z向外, OpenGL坐标系为笛卡尔右手系。 屏幕坐标系和Cocos2d坐标系标准屏幕坐标系使用和OpenGL不同的坐标系,而Cocos2d则使用和OpenGL相同的坐标系。iOS转载 2017-07-14 21:27:20 · 307 阅读 · 0 评论 -
[cocos2d-x]关于Action
Action的分类 第一种:FiniteTimeAction类:有限时间的动作类 第二种:Follow类:节点跟随另一种节点的类 第三种:Speed类:节点执行速度类第一种有限时间的动作类又分为瞬时动作和持续时间的动作。几个重要的动作类Sequence:按顺序执行一系列的动作。但是在执行的动作系列中不能出现Repeat这种无限的动作。CCMoveTo* move_1 = CCMoveTo:原创 2017-07-10 22:12:54 · 347 阅读 · 0 评论 -
[cocos2d-x]关于定时器
什么是定时器定时器的作用就是每隔一段时间,就执行一段自定义的动作,比如飞机向前方移动,子弹的移动等等。该函数定义在CCNode头文件中,基本上cocos2dx中所有的东西都能够使用定时器。定时器的分类第一种:scheduleupdate()默认定时器 该定时器开启函数与update()函数配套使用,update方法是每一帧执行一次,所以如果默认每秒60帧,那么每秒就执行60次。 使用方法原创 2017-07-08 22:51:31 · 427 阅读 · 0 评论 -
[cocos2d-x]关于3.x的触摸机制
触摸机制的概念通过对要监听触摸的节点进行注册,然后自定义相应的触摸函数,由事件监听器实现对触摸的监听并且实现相应的响应动作。触摸的分类单点触摸 下面是实现单点触摸监听的步骤://第一步:先创建一个要进行触摸检测的精灵auto spr=Sprite::create("helloworld.png");//第二步:创建一个事件监听器auto touchListener= EventLis原创 2017-07-09 21:43:52 · 367 阅读 · 0 评论 -
[cocos2d-x]TextureCache和spriteFramecache
SpriteFrameCache 主要服务于多张碎图合并出来的纹理图片。这种纹理在一张大图中包含了多张小图,直接通过TextureCache引用会有诸多不便,因而衍生出来精灵框帧的处理方式,即把截取好的纹理信息保存在一个精灵框帧内,精灵通过切换不同的框帧来显示出不同的图案。SpriteFrameCache跟TextureCache不同的是,如果内存池中不存在要查找的图片,它会提示找不到,而不会去本地原创 2017-07-31 22:10:08 · 477 阅读 · 0 评论 -
[cocos2d-x]关于屏幕适配
第一步:理解屏幕分辨率和设计分辨率通过这个图可以很容易理解,设计分辨率就是你能够进行纹理绘制的大小,而屏幕分辨率就是你的画框大小。而两者之间的适配,通过cocos2dx自带的几种适配方案来进行适配,这里我就简单说明一下:1—-ResolutionPolicy::EXACT_FIT :拉伸变形,使铺满屏幕 2—-ResolutionPolicy::NO_BORDER :按比例放缩,全屏展原创 2017-08-02 13:53:23 · 486 阅读 · 0 评论 -
[cocos2d-x]判断两个矩形是否有交叉区域
bool Rect::intersectsRect(const Rect& rect) const{ return !( getMaxX() < rect.getMinX() || rect.getMaxX() < getMinX() || getMaxY() < rect.getM...原创 2017-08-23 21:39:37 · 2675 阅读 · 0 评论