分享

cocos2d

 sofes 2012-07-08
2012-6-17
 
Tool:
Add:
#1 To save memory, AnimatePacker support "Trim" and "Allow rotation" features in TexturePacker.
 
Library:
Add:
#1 Support cocos2d-x 2.0
 
Downloads:
Dropbox:
https://www./s/rthsswkccn15dwl/AnimatePacker%20v2.0%20for%20win32%26mac%20build1.zip
115:
http:///file/anrd0mg8#AnimatePacker v2.0 for win32&mac build1.zip
引子
我曾以为对智能手机那庞大的内存来说,支持帧动画是绰绰有余的。但实际分析下来,我可耻的失败了。
开发对于切片动画,依然有着庞大的需求,尤其是在需要做丰富的游戏内容的时候。如果全部使用帧动画,内存绝对会直接爆掉。
由于国内游戏开发的XX现状,绝大部分公司是不会投入专人花上几个月去专门开发一套切片动画编辑器的。大都是立足于使用现有的编辑器进行二次开发。
但如何开发才能充分发挥引擎性能,这是个值得探讨的问题。
开发要点
1.关于opengl纹理的二的指数倍边长问题,需要工具支持优化排列。这个很多古老编辑..
 引子
我在《cocos2d-x学习笔记16:记录存储1:CCUserDefault 》中提到过CCUserDefalut做存档的种种缺陷,其中之一就是明文存储,玩家可以直接修改存档。
本文将探讨如何使用摘要算法进行存档校验的方法。
准备工作
摘要算法很多,算法内容都是公开的。所以网络上有很多现成的算法库,最有名的是Crypto++,该库支持大量对称加密,非对称加密,和摘要算法。不过这库太庞大了,我们只是用一个简单的摘要算法,就先不用这玩意了。


我选择了SHA1,库从这个地址下载:
http:///
打开后发现非常简洁,只有两个..
下载地址:
DropBox:
https://www./s/ft5gzb4f0xnq568/AnimatePacker%20v1.1%20build1.zip
115:
http:///file/be9jxq3h
内附:教程、例子、mac版、win32版

 
cocos2d-x有个问题,即使暂停CCScene运行,触摸仍然有效,有些菜单和按钮仍然会被触发。
所以有的时候我们要手动屏蔽触摸,尤其是在弹出计费画面的,或者使用一些本平台自带控件的时候。
做法有几种:
第一种方案是:每一个继承自CCLayer的类都可以关闭触摸,使用这个函数
setIsTouchEnabled(false); 
在暂停sence时,我们只需要关闭那些主要的CCLayer即可,也就是当前CCScene的主CCLayer和相关的CCMenu等。
但这种方法,有时候会造成莫名其妙的crash。调试发现,如果在同一个frame的同一个函数中,先关闭再恢复触摸,就可..
Added Features:
1.支持拖拽xml文件到AnimatePacker。依然支持plist拖拽,程序会自动识别,自动执行添加plist或打开新的xml的操作。
2.支持删除Plists列表中的plist,并会连带删除Sprites、Animtons和SpriteFrames中的相关项
3.增加每个Frame的图像预览,并提供播放Animate功能,支持缩放
4.补充大量相关操作的按钮
5.去掉输出xml里的sprite信息,生成的文件体积更小。(现在sprite由plist中读取,所以plist和xml需要在同一个目录下)
Preview:
1.使用自动适配的HD模式,没法加载资源



再现方法:
开启HD适配
pDirector->enableRetinaDisplay(true); 
提供了HD资源,但没有提供SD资源,例如:提供了XXXX-hd.png,但没有提供普通的XXXX.png。注意该错误复现率不稳定,必须删除手机中的软件,并且clean项目后才有高几率复现。



现象:
在HD手机上加载资源失败,游戏直接卡死



分析:
调试发现fullPathFromRelativePath没法获得正确的路径只是直接返回了传参给他的文件名



结论:
必须同时提供HD和SD两套图     
    &nb..
一、概述
cocos2d-x最初移植自cocos2d的objective C版本。因此,在内存管理上,使用了和NSObject类似的引用计数器方法,相关接口放置在CCObject类中。



二、引用计数器——手动管理内存

CCObject的及其子类的对象在创建时,引用计数自动设置为1。之后每次调用retain,引用计数+1。每次调用release,引用计数-1;若引用计数=0,则直接delete this。
相关接口如下:

 
//引用次数+1 virtual void CCObject::retain(void); //引用次数-1;若引用计数器=0,则delete this; vi..
 
 
一、引子
 
哦,好吧,我一直比较吐槽cocos2d-x那个动画加载方式,记得我在《cocos2d-x学习笔记04:简单动画》中写的,一个简单动画的加载,就需要写十几行代码。
 



CCSize s = CCDirector::sharedDirector()->getWinSize();  //#1:生成动画 需要的数据类 CCTexture2D *texture=CCTextureCache::sharedTextureCache()-> addImage("pic2476.png"); CCSpriteFrame *frame0=CCSpriteFrame::frameWithTexture(texture,CCRectMake(32*0,&n..
类别:cocos2d-x|阅读(4085)|回复(10)|(4)阅读全文>>
 cocos2d-x学习笔记17:记录存储2:SQLite基本使用



一、安装与配置
SQLite是使用非常广泛的嵌入式数据库,它有着0配置,占用资源少等特点。从大型游戏《魔兽世界》到android上的很多游戏和软件(google提供了一个java语言的绑定。)



在cocos2d-x中,我们使用它的C语言绑定。
为了方便和简化篇幅,我们直接使用它的源代码。下载地址:
http://www./sqlite-amalgamation-3071000.zip  


 
将其解压到cocos2d-x引擎目录下,得到一个“sqlite-amalgamation-3071000”文件夹,里面

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多