cocos2d-x
__Cm_duck
You got a dream, you gotta protect it.
展开
-
cocos2d-x大批相同精灵一次渲染
CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("sprite.png"); this->addChild(batchNode); for (int i = 0; i < 1000; ++i) { CCSprite* xiaoruo = CCSprite::create("s原创 2013-11-18 15:24:04 · 1282 阅读 · 0 评论 -
Cocosd-x设计模式之七 :组合模式
在开始挖掘cocos2d-x里面的组合模式之前,我武断地下个结论:“几乎所有与GUI相关的框架设计都应用了组合设计模式”。(PS:大家注意我的用词,是“几乎所有”,给自己留条后路,哈哈)1、应用场景Cocoa编程框架APPKit和UIKit都应用了组合模式,各种各样的View及其派生类组成了一棵树状结构的层级视图,而这里面就应用了组合模式。当然,Cocos2D-x里面的No转载 2013-12-15 16:56:24 · 562 阅读 · 0 评论 -
Cocosd-x设计模式之八 :中介者模式
前言:上上周写了关于cocos2d-x里面的观察者模式,文章最后提到一个应用场景:“你的GameScene里面有两个layer,一个gameLayer,它包含了游戏中的对象,比如玩家、敌人等。另一个层是HudLayer,它包含了游戏中显示分数、生命值等信息。如何让这两个层相互通信。”关于这两个层之间如何通信的问题,读者Llllong和我畅快淋漓地讨论了一番,详细的内容可以参考那篇文转载 2013-12-15 16:57:31 · 639 阅读 · 0 评论 -
Cocos2d-x设计模式发掘之二:二段构建模式
乍一看标题,大家可能会觉得很奇怪,神马是“二段构建模式”呢?所谓二段构建,就是指创建对象时不是直接通过构建函数来分配内存并完成初始化操作。取而代之的是,构造函数只负责分配内存,而初始化的工作则由一些名为initXXX的成员方法来完成。然后再定义一些静态类方法把这两个阶段组合起来,完成最终对象的构建。因为在《Cocoa设计模式》一书中,把此惯用法称之为“Two Stage Creation”转载 2013-12-15 16:48:15 · 1380 阅读 · 0 评论 -
Cocosd-x设计模式之三:管理者模式
想必读者一看这个题目又要纳闷了,神马又是“管理者模式”啊?管理者(Manager)就是专门负责管理其它类的实例的类,比如Cocoa里面的NSFontManager、NSInputManager、NSFileManager和NSLayoutManager类。此模式和“二段构建模式”一样,也没有出现在GoF的23个设计模式中,但是《Cocoa设计模式》一书中有提及,感兴趣的读者可以去查阅一下。转载 2013-12-15 16:49:46 · 677 阅读 · 0 评论 -
Cocosd-x设计模式之五 :防御式编程模式
声明:防御式编程是提高程序代码质量的一种手段,它不能算是真正意义上的模式。但是,这里,我还是要给它冠之以“模式”二字。原因有2:1.cocos2d-x的框架源代码大量采用了防御式编程技术,用来确保框架的代码质量和稳定性。2.标题党,引起大家对于防御式编程的重视。特别是当大家给cocos2d-x贡献源代码的时候,更应该要注意保证代码质量。因为,王哲大大在review很多人给c转载 2013-12-15 16:53:36 · 642 阅读 · 0 评论 -
Cocosd-x设计模式之六:观察者模式
1、应用场景前面在介绍单例模式的时候,提到了一个类CCNotificationCenter,它除了应用单例模式以外,还应用了观察者模式。CCNotificationCenter类是观察者模式中的目标对象,而CCNotificationObserver则是观察者。一个目标对象可以注册多个观察者,当目标对象的状态改变的时候,可以通知观察者对象作出相应的响应。这是标准的观察者模式转载 2013-12-15 16:54:43 · 673 阅读 · 0 评论 -
CCScrollView使用注意
调试了一下午发现CCScrollView的一些注意小细节#ifndef __HELLOWORLD_SCENE_H__#define __HELLOWORLD_SCENE_H__#include "cocos2d.h"#include "cocos-ext.h"USING_NS_CC;USING_NS_CC_EXT;class HelloWorld : public CCLaye原创 2013-12-26 18:17:11 · 870 阅读 · 0 评论 -
cocos2dx中的onEnter和init
当一个节点被创建HelloWorld *layer = HelloWorld::create();由于宏CREATE_FUNC#define CREATE_FUNC(__TYPE__) \static __TYPE__* create() \{ \ __TYPE__ *pRet = new __TYPE__(); \ if (pRet && pRet->init原创 2015-03-18 20:05:05 · 713 阅读 · 0 评论 -
Cocosd-x设计模式之四 :外观模式
1.应用场景Cocos2d-x里面有一个非常明显的地方使用了外观模式,它就是SimpleAudioEngine。因为它为CocosDenshion这个子系统的一组接口提供了一个一致的界面,同时定义了一个高层接口,方便客户使用该子系统。对于大多数用户来讲,游戏中操作声音,无非就是播放背景音乐和音效。CocosDenshion这个子系统封装了OpenAL,屏蔽了OpenAL操作声音的低转载 2013-12-15 16:51:05 · 674 阅读 · 0 评论 -
Cocosd-x设计模式之九 :委托和委托设计模式
前言:前一篇文章讨论了cocos2d-x里面的中介者模式,但是,由于概念把握上面的偏差,我把GoF的中介者模式搞混淆了。幸好有读者给我提出了这个问题,我在上一篇文章中也补充说明了。虽然我谈到的应用场景跟中介者模式有点类似,但是,经典的模式就是模式,我不能随便篡改,更不能张冠李戴。所以,这篇文章我将谈到的是委托模式(delegation pattern),而不是GoF里面的代理模式(Prox转载 2013-12-15 16:58:26 · 718 阅读 · 0 评论 -
什么是纹理——CCTexture2D
CCSpriteFrame可以只截取图片的一部分来创建精灵,并且两个精灵使用同一种纹理。bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); CCSprite* sp1 = CCSprite::createWithSpriteFrame(CCSpriteFrame::create("sprite.p原创 2013-11-18 15:31:55 · 1185 阅读 · 0 评论 -
精灵帧图
用精灵帧图片创建一个精灵,可以包含一个矩形结构。CCSprite* sp1 = CCSprite::createWithSpriteFrame(CCSpriteFrame::create("sprite.png",CCRectMake(0, 0, 60, 50)));用精灵帧图片的名字创建一个精.CCSpriteFrameCache是缓存池,存放所有CCSpriteFrame对象的地方,用ad原创 2013-11-18 16:51:27 · 803 阅读 · 0 评论 -
使用Tiled地图及利用地图设置坐标
使用Tiled软件将地图信息保存为XXX.tmx格式。/*加载Tiled地图,添加到场景中*/ CCTMXTiledMap* map = CCTMXTiledMap::create("level01.tmx"); CCTMXLayer* groundLayer = map->layerNamed("ground"); this->addChild(m原创 2013-11-19 17:27:29 · 3269 阅读 · 0 评论 -
创建图片动画
创建动画的步骤一般有3步:(1)创建一组CCSpriteFrame对象,每张动画图片为一个CCSpriteFrame对象。(2)用这组CCSpriteFrame对象创建一个CCAnimation对象,该对象包含了动画所需的一些配置信息。(3)顾名思义,CCAnimation是名词,因此只有它是不能实现动画的,我们还要利用CCAnimation对象创建一个CCAnimate对象,CCAn原创 2013-11-19 15:26:59 · 970 阅读 · 0 评论 -
观察者模式
观察者模式工具类——CCNotificationCenter.函数:1.addObserver(订阅消息)addObserver(CCObject* target, //要订阅消息的主体SEL_CallFuncO selector, //消息回调函数const char* name, //消息名称CCObject*原创 2013-11-22 15:03:57 · 768 阅读 · 0 评论 -
Cocos2d-x设计模式发掘之一:单例模式
本系列文章我将和大家一起来发掘cocos2d-x中所使用到的设计模式,同样的,这些模式在cocos2d-iphone中也可以找到其身影。声明:这里发掘模式只是我的个人爱好,通过这个过程,我希望能加深自己对于设计模式运用的理解。关于模式的学习,市面上已经有许多非常好的书籍了。比如《Head First设计模式》、GoF的设计模式,还有《研磨设计模式》等。如果读者对于设计模式完全不了解的话,建转载 2013-12-15 16:46:00 · 641 阅读 · 0 评论 -
cocos2dx中C++与lua交互
最近在写热更新的模块,目的是C++调用CRUL multi接口实现多线程下载功能并提供实时的状态查询接口给lua调用,采用的是生产者消费者模型。在使用tolua手动导出lua接口的时候碰到了一些问题,并在此记录。 lua与C++的交互是使用lua的registry表,C/C++代码可以自由使用,但Lua代码不能访问他.为每一个要注册到lua的数据,在registry创建一个元表.以类型名...原创 2018-10-29 11:57:58 · 1303 阅读 · 0 评论