cocos2d-x v2/v3
文章平均质量分 69
cocos2d-x v2,v3, cocosbuilder
~一叶、
java、golang, devops, docker,
中间件、架构、系统设计、
方法论、思维模型
展开
-
阅读笔记《全景探秘游戏设计艺术》
《全景探秘游戏设计艺术》笔记 ——————2013/4 lens #100:你的真实目的为了确保你在向你真实的目标前进,请自问一下这个重要的问题:为什么我要做这件事? 1——6体验分析 lens #1:核心体验如果你不知道你想要什么,你就不在乎你得到了什么。但如果你清楚自己想要的东西,你就需要将核心体验传达给你的玩家。1)希望玩家原创 2015-04-29 14:14:10 · 1975 阅读 · 0 评论 -
阅读笔记《游戏策划教程》
《游戏策划教程》笔记 ————————2013/4 一、构思与创意1. 获得创意2. 游戏设计的起点 围绕故事情节展开工作,排除不适合的游戏类型(RPG、ACT.....),选择可采用的游戏类型。3. 确定设计主线 如果没有设计主线,那么最后设计文档可能出现相互矛盾的情况。 1)按类型 选择游戏类型 决定目标水原创 2015-04-29 14:14:21 · 502 阅读 · 0 评论 -
Android&iOS崩溃堆栈上报
Android&iOS崩溃堆栈上报通过崩溃捕获和收集,可以收集到已发布应用(游戏)的异常,以便开发人员发现和修改bug,对于提高软件质量有着极大的帮助。在这里总结一下这几天做崩溃捕获的收获。我们项目使用的是cocos2dx-js,那么要捕获的信息就有以下三点: 1. js脚本语法错误、js调用为定义的native对象(程序不会崩溃) 2. iOS(obj-c)/Android(java)端的未捕原创 2015-10-16 15:39:10 · 1561 阅读 · 0 评论 -
cocos2d-x3.x使用rapidjson
rapidjson效率高,所以之前cocostudio里面解析用的jsoncpp也换成了rapidjson。引擎又带有rapidjson库,所以不用单独去下载,直接就可以用。 这里主要写一下关于解析和存储的代码笔记。 1. 解析#include "json/rapidjson.h"#include "json/document.h"#include "json/原创 2015-04-29 14:16:13 · 444 阅读 · 0 评论 -
cocos2dx - ActionManager内存泄露
ActionManager memory leakcocos2d-x3.7都3.7了还有这样的bug,真是好难过,不过还是好开源的,谁都可以贡献一下问题描述:当创建一个node,并让它run一个action的时,如果这个node没有添加到任何其它节点(即没有父节点),那么改node和action将一直不会被释放。原因:在node调用runAction时,会将动画交给ActionManager来管理,原创 2015-10-16 16:32:38 · 549 阅读 · 0 评论 -
关于js-binding中Layer触摸事件的优化
关于js-binding中Layer触摸事件的优化cocos2d-x 3.71. 目前js中监听触摸事件带来的不便(特别是cocosbuilder)在目前的js-binding中,如果要监听layer的触摸事件,需要自己监听touch事件,如:var touchLayer = cc.Layer.creat();cc.eventManager.addListener({ event:原创 2015-09-24 14:06:13 · 1651 阅读 · 0 评论 -
cocosbuilder中使用字体描边时,字符重叠,间距过小问题
cocosbuilder中使用字体描边时,字符重叠,间距过小问题cocos2d-x 3.7v3.7解析cocosbuilder中描边字体的代码如下:void LabelTTFLoader::parseProperties( cocos2d::Node * pNode, cocos2d::Node * pParent, CCBReader * ccbReader ){ _enableOutl原创 2015-09-24 14:09:21 · 748 阅读 · 0 评论 -
crash:EXC_ARM_DA_ALIGN(关于内存对齐,memcpy)
crash:EXC_ARM_DA_ALIGN(关于内存对齐,memcpy)问题描述在iOS game开发时做内存拷贝时出现了 crash:EXC_ARM_DA_ALIGN,debug版本不会出现,release版本只在部分机器上出现(ipad 1(iOS7),ipod touch 5(iOS7,iOS8), iphone5c(iOS9)). 所以初步猜想是release编译优化导致的,从crash原创 2015-11-24 10:38:14 · 1053 阅读 · 0 评论 -
cocos2d-x3.7 cclabel文字破碎,异常,变乱
效果图如下: 无论是按钮(control button),还是普通的label都有小概率出现这种情况。 该问题发现于cocos2d-x3.7原因:在3.x中使用ttfconfig创建的label,为了性能是创建了缓存的,字体纹理缓存的大小默认是512*512(不同版本大小可能不一样)//CCFontAtlas.cppconst int FontAtlas::CacheTextureWidt原创 2016-01-05 11:18:45 · 1900 阅读 · 0 评论 -
2dx关于js响应layer触摸消息的bug
cocos2dx关于js响应layer触摸消息的bugcocos2d-x 3.7问题描述:目前这个版本中(3.7),c++层的layer触摸消息只能通过消息的方式发送给js,不能像lua一样直接回调js注册的触摸回调接口,为了方便,我们更改一下layer类的onTouchBegan/onTouchMove...等接口,使其支持在layer的触摸响应中直接回调js接口。 具体实现见:http://w原创 2015-09-24 14:08:17 · 8195 阅读 · 0 评论 -
2dx解析cocosbuilder中使用layer时的缺陷
2dx解析cocosbuilder中使用layer时的缺陷cocos2d-x 3.7cocosbuilder中的layer通常会用到触摸属性: 但是在2dx解析布局文件的时候,却很多属性都没解析:#define PROPERTY_TOUCH_ENABLED "isTouchEnabled"#define PROPERTY_ACCELEROMETER_ENABLED "isAcceleromete原创 2015-09-24 14:04:27 · 635 阅读 · 0 评论 -
关于 2dx v3.7 UIScale9Sprite的bug
关于 2dx v3.7 UIScale9Sprite的bug 刚把引擎从js binding v3.0升级到v3.7,发现了一些bug,这里先说说关于scale9sprite的1. 关于capInsetshttps://github.com/cocos2d/cocos2d-x/issues/13560 问题描述:使用cocosbuilder创建的九宫格图片,如果capInserts没有设置(即原创 2015-08-28 13:25:53 · 674 阅读 · 0 评论 -
cocos2d-x之MoonWarriors用c++实现
玩了sample里面的cocos2d-html5的MoonWarriros,感觉效果做得挺不错的,但是源代码是javascript,鄙人又不会这门语言。github上也有别人贡献的c++代码,不过还有问题。最后再各种求助之下,以c++搞定了,经测试在win7和android上面已经没问题了。 把原版的图片修改了一下,贴出cocos2d-x(之前是cocos2d-html5)原创 2015-04-29 14:14:44 · 437 阅读 · 0 评论 -
cocos2d-x之jni使用(对接Android各种sdk)
游戏弄完了,要发布到各个平台,ios、Android是肯定少不了的,那么本文就来讲讲Android平台对接代理商付费sdk、各渠道、五大运营商、广告、分享、数据统计等等少不了的jni调用,接sdk真是各种麻烦事儿啊。。。 首先,这么多sdk,功能各有不同,所以得有一个统一的sdk管理类来管理,然后游戏中需要用到什么功能的时候调用指定接口,接口实现时,不同的平台在调用不用的sdk~原创 2015-04-29 14:15:57 · 1693 阅读 · 0 评论 -
cocos2d-x中使用sqlite
在单机游戏中有几十个场景道具,每一个都有各自的状态(获得、未获得、获得个数)等等,如果在游戏中平凡涉及到这些道具的实时存储,那么使用文本就会稍慢、可以使用sqlite数据库来完成。下载地址:http://www.sqlite.org/download.html下载后,在项目中导入sqlite3.c和sqlite3.h两个文件即可。 附上使用代码:(如果表不存在,创建两个表、存储两种原创 2015-04-29 14:15:54 · 425 阅读 · 0 评论 -
cocos2d-x, protobuf, no config.h, #error "No suitable threading library available."
在用cocos2d-x3.2 + protobuf编译Android项目的时候,protobuf出现了两个问题: 1. 首先是config.h找不到,查阅自后说是通过命令或工具生成的,里面的内容根据不同平台是不一样的(引用一些用到的库,例如hash_map,hash_set等,和部分宏定义),那么就要在自己手动生成,或者自己创建一个空的config,自己把一些引用到的库加进去,为了能快速编原创 2015-04-29 14:16:01 · 3085 阅读 · 0 评论 -
cocos2d-x中使用Http
一、如何使用//发送接口void CmdHelper::postRequest(const char* cmdTag, const char* url, const char* postData, size_t postDataLengt){ CCHttpRequest* request = new CCHttpRequest(); request->se原创 2015-05-08 18:20:13 · 448 阅读 · 0 评论 -
CCTableView的使用和注意事项
#include "cocos-ext.h"using namespace cocos2d::extension;class TableViewTestLayer: public CCTableViewDataSource, public CCTableViewDelegate{public: ////////////////////////////////////////原创 2015-04-29 14:15:10 · 606 阅读 · 0 评论 -
cocos2d-x调度器原理
程序运行后每达到一帧的时间间隔就会执行一次mainLoopvoid CCDisplayLinkDirector::mainLoop(void){//判断是否需要释放CCDirector,通常游戏结束才会执行这个步骤 if (m_bPurgeDirecotorInNextLoop) { m_bPurgeDirecotorInNextLoop =原创 2015-04-29 14:14:49 · 377 阅读 · 0 评论 -
用CCRenderTexture和BlendFunc制作游戏教学时使用的黑色覆盖层
游戏快要完成了,准备做教学。 我们的教学是在整个界面上盖一层灰色图片,然后把提示点击的按钮部分亮出来,也就是在一块黑色图片上,按需求扣空一小部分。如图,把武器部分扣空,那么在其它地方又会扣空其它部分,而且要可以扣空多个不规则图形。 方法:先计算出要扣空部分的位置和大小,这个很容易,应为它已经在你的界面上了,用->getpositon,->getContentSize,再转换一原创 2015-04-29 14:15:03 · 496 阅读 · 0 评论 -
cocos2d-x中使用json
首先去下载JsonCpp这个库,放到项目的Class目录下,再在项目中添加进来。 然后、、、然后看图。。。//JsonTestLayer.h#pragma once#include "json/json.h"#include "cocos2d.h"USING_NS_CC;class JsonTestLayer : public CCLay原创 2015-04-29 14:15:13 · 395 阅读 · 0 评论 -
cocos2d-x动作原理
首先CCAction是所有动作的基类,如下图继承关系: 那么来看看CCAction的定义: class CC_DLL CCAction : public CCObject {public: CCAction(void); virtual ~CCAction(void); const char* description();原创 2015-04-29 14:14:56 · 283 阅读 · 0 评论 -
cocos2d-x回收池原理
cocos2d-x源于cocos2d-iphone,为了与Objective-c一致,cocos2d-x也采用了引用计数与自动回收的内存管理机制。要现实自动内存回收,需继承于cocos2d-x的根类CCObject。当然自动释放会影响性能的。 cocos2d-x中有很多静态工场方法,例如以create开头的,这些静态工场方法创建的对象都使用的autorelease,试想如果不用auto原创 2015-04-29 14:14:42 · 336 阅读 · 0 评论 -
cocos2d-x触摸分发器原理
屏幕捕捉到触摸消息的派发流程:如果有一个组件如果想要接收触摸事件,会通过继承一个CCTouchDelegate接口注册给CCTouchDispatcher,CCTouchDispatcher 中维护了一个CCTouchHandler的队列。CCTouchHandler 是CCTouchDelegate两个派生类的包装类。在接到触摸事件之后,遍历 所维护的CCTouchHandler 队原创 2015-04-29 14:14:59 · 354 阅读 · 0 评论 -
cocos2dx新建android项目lib拷贝、访问权限等问题集
win7上面搭建cocos2dx的android项目,用create-android-project.bat新建一个项目时,出现了访问权限和项目无lib的问题。解决方案:1、项目无lib问题。当添加项目到eclipse上面时,发现import org.cocos2dx.lib.Cocos2dxActivity找不到,查项目的src目录下面也没有相应的文件,原来是创建项目时lib的源文件原创 2015-04-29 14:14:39 · 818 阅读 · 0 评论 -
CCScale9Sprite的使用
#include "cocos-ext.h"USING_NS_CC_EXT; //框中需要显示的label CCLabelTTF *label = CCLableTTF::create(...); label->setAnchorPoint(ccp(0.5f,0.5f)); CCScale9Sprite* base = CCScale9Sprite::create("原创 2015-04-29 14:15:15 · 382 阅读 · 0 评论 -
CCOrbitCamera卡牌翻转效果
static CCOrbitCamera* create(float t, float radius, float deltaRadius, float angleZ, float deltaAngleZ, float angleX, float deltaAngleX); 旋转的时间,起始半径,半径差,起始z角,旋转z角差,起始x角,旋转x角差 //正面卡牌开始翻转 Bas原创 2015-04-29 14:15:08 · 549 阅读 · 0 评论 -
使用cocos2d-x制作 Texture unpacker
使用cocos2d-x制作 Texture unpacker没错,就是unpacker。 在大多数游戏包里面,可以找到很多纹理图集,他们基本上是用texture packer制作的,有plist文件和png图片组成。 如果原来的小图比较少,倒是可以自己在plist里面找名字,如果小图有几百张,那真的会找疯掉。所以今天就用cocos2d-x引擎制作了一个将纹理大图解包成一张张小图的工具。原创 2015-05-25 17:07:25 · 1646 阅读 · 0 评论 -
cocos2d-x使用ant批量打包
当项目需要在多渠道上线时,要打很多的渠道包,少则几十个,多种几百个。它们的区别一般只是渠道id或部分配置信息不同,这些信息均可写在配置文件中。 例如常见的渠道id不同,一般定义在AndroidManifest.xml文件中 。获取方式:public static String getChanel(Context ctx){ String CHANNELID=原创 2015-04-29 14:16:09 · 478 阅读 · 0 评论 -
cocos2d-x混合BlendFunc的使用
1、什么是混合模式“混合”是指两种颜色的叠加方式。在新图片将要渲染画到屏幕上的时候,将用在新图片中的红、绿、蓝和透明度信息,与屏幕上已经存在的图片颜色信息相融合。说的具体一点,就是把某一像素位置上原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。新图片颜色被称作“源颜色”,而屏幕上已存在的图片颜色则被称作“目标颜色”。OpenGL会把源颜色和目标颜色各自取出,原创 2015-04-29 14:16:18 · 767 阅读 · 0 评论 -
cocos2d-x使用ant打包
1. 下载apache-ant-1.9.3,然后添加环境变量ANT_HOME = D:\dev_envir\apache-ant-1.9.3(你自己的ant根目录),再在path中添加路径:%ANT_HOME%\bin;%ANT_HOME%\lib; 2. 配置cocos2dx环境(略过),此处用的cocos2d-x3.x版本 3. 创建项目cocos new TestAnt原创 2015-04-29 14:16:06 · 921 阅读 · 0 评论 -
解决TableView / ScrollView上的Menu问题(1滑出View区域还可点击2导致点击menu后View不能滑动)
解决TableView / ScrollView上的Menu问题 1划出区域还可点击重写CCMenu的触摸事件函数 TouchBegin/TouchMove/TouchCancle/TouchEnd如果点击超出了 TableView/ScrollView边界则 TouchBegin返回false 2导致View不能滑动透传CCMenu的触摸吞噬、让触摸可以下传,然后再t原创 2015-04-29 14:15:25 · 613 阅读 · 0 评论