cocos2d-x
Cuijiahao
cocos2d-x/u3d程序员
展开
-
更新函数
this->scheduleOnce(schedule_selector(HelloWorld::updateLeftMove),1.0f); //只刷新一次原创 2013-12-02 10:51:26 · 636 阅读 · 0 评论 -
CCArmature更换骨骼渲染资源
m_pArmature = CCArmature::create(_strsrc->getCString()); m_pArmature->getAnimation()->play("Animation1"); //m_pArmature->getAnimation()->setMovementEventCallFunc(this,movementEvent_selector(PetLa原创 2014-09-25 19:43:49 · 844 阅读 · 0 评论 -
cocos2d-x 数学函数、常用宏粗整理
最近我们的cocos2d-x游戏项目已经进入了正式开发的阶段了,几个dev都辛苦码代码。cocos2d-x还是一套比较方便的api的,什么action啊、director啊、ccpoint啊都蛮便捷的。但是我看到几个dev有时候会很不知道用它们,还是首先自己去写函数……用一些比较原始、低效率的方法……甚至是copy / paste………………。……。这不科学转载 2015-01-09 13:14:43 · 433 阅读 · 0 评论 -
CCArmature获取当前正在运行的动画名
m_pArmature->getAnimation()->getCurrentMovementID().c_str()原创 2014-12-30 13:59:41 · 404 阅读 · 0 评论 -
cclog宏(直接打印文件、行数、函数名)
#define CCLOG_CODE_LOCATION CCLOG(" File: %s\n Line:%d\n Func:%s", __FILE__ ,__LINE__,__FUNCTION__)原创 2015-02-05 13:53:22 · 480 阅读 · 0 评论 -
cocos3.x触摸机制
auto dispatcher = Director::getInstance()->getEventDispatcher(); //创建一个单点触摸监听器 auto listener = EventListenerTouchOneByOne::create(); //吞噬触摸 listener->setSwallowTouches(true); //响应touchbegan回调 li原创 2015-03-28 15:22:00 · 501 阅读 · 0 评论 -
cocos2dx3.X创建项目
cocos new MyGame -p com.MyCompany.MyGame -l cpp -d e:/MyCompany参考页面:http://blog.csdn.net/tspangle/article/details/37502565 1.在cocos2d-x-3.2alpha0\运行python命令python setup.py//它的作用是原创 2015-03-13 10:44:23 · 435 阅读 · 0 评论 -
关于UIHelper的两个自动递归获取节点的函数
所有继承自Node类型的节点都支持使用getChildByName(name)和getChildByTag(tag)来获取当前节点的某个子节点。这两个函数已经能够满足我们大部分的需求。但有时候我们需要获取某个节点的子节点的子节点、甚至子节点的子节点的子节点、甚至... 这样的需求是很常见的,而一层一层去get未免太繁琐。 对于Cocos Studio 1.x版本,Coco原创 2015-04-03 13:23:57 · 387 阅读 · 0 评论 -
http下载文件
void ResDownManager::sendRequest(std::string url){HttpRequest* request = new HttpRequest();//创建request对象,这里new出来的对象不能使用autorelease(),原因后述request->setUrl(url);//设置urlrequest->setRequestType(Htt原创 2017-09-25 16:18:20 · 1732 阅读 · 0 评论 -
动态更换plist资源时调用清空缓存的函数
Director::getInstance()->purgeCachedData();//清空没用的缓存动态更换plist资源时调用。原创 2017-09-09 11:43:48 · 609 阅读 · 0 评论 -
加载plist过程中用到哪些缓存机制
会调用SpriteFrameCache::getInstance()->addSpriteFramesWithFile函数加载,然后通过Director::getInstance()->getTextureCache()->addImage函数将png加进去原创 2017-09-09 11:46:59 · 196 阅读 · 0 评论 -
cocos绑定回调函数的写法
void update_func(参数1);类成员->setUpdateFunc(CC_CALLBACK_1(类::update_func, this));CC_CALLBACK_1表示绑定带一个参数的成员函数CC_CALLBACK_2表示绑定带两个参数的成员函数原创 2017-09-18 15:18:46 · 1230 阅读 · 0 评论 -
无法打开包括源文件"extensions/cocos-ext.h" (包括无法打开cocos的任何源文件都用此方法)
解决方案:在项目上右键选择【属性】->【c/c++】->【附加包含目录】,编辑【附加包含目录】在最后添加$(EngineRoot),点击【确定】按钮。原创 2017-10-10 16:51:30 · 386 阅读 · 0 评论 -
cocos2dx解压zip
cocos集成了解压的功能,但为方便我单独提取出来。ZipArchive类是放在libcocos2d/extension/assetsmanager目录下的ZipArchive.h#ifndef _ZIPARCHIVE_H_#define _ZIPARCHIVE_H_#include "cocos2d.h"#include "cocos-ext.h"NS_CC_EXT_B原创 2017-10-11 16:16:54 · 1828 阅读 · 0 评论 -
全局scheduler的用法
先定义一个scheduler this->scheduler_ = cocos2d::Director::getInstance()->getScheduler(); this->scheduler_->retain(); this->scheduler_->schedule(bind(&WSocketCtrl::update1, this, std::placeholders::_1)原创 2017-10-12 11:51:55 · 784 阅读 · 0 评论 -
coco2dx 线程池AsyncTaskPool的使用方法
AsyncTask是什么呢?它是对线程池和Handler的封装;用线程池来挺处理后台任务,用Handler来处理与UI的交互。struct AsyncData { std::string zipFile;//zip包 bool succeed; }; AsyncData* asyncData = new AsyncData; asyncData->zipFile =原创 2017-10-13 11:45:13 · 1480 阅读 · 0 评论 -
关于异步加载资源、plist的一些注意事项
凡是资源加载里面带有Director::getInstance()->getTextureCache()->addImage(textureName);的就必须先异步加载图片(Director::getInstance()->getTextureCache()->addImageAsync(filename, CC_CALLBACK_1(ResUpdateManager::onLoadingCal原创 2017-10-15 11:44:41 · 396 阅读 · 0 评论 -
世界坐标本地坐标之间的转换
在cocos2d-x,提供现成的两个用于坐标转换的函数,convertToNodeSpace和convertToWorldSpaceconvertToNodeSpace:将世界坐标转换为本地坐标用法:node1->convertToNodeSpace(node2->getPosition());注释:将node2的世界坐标转化为相对于node1的本地坐标原创 2017-11-13 14:51:42 · 2165 阅读 · 0 评论 -
CCHttpRequest联网
使用CCHttprequest联网有两种方法get和post。get和post都可以从服务器获取数据,这两种联网的方法有所不同。下面简单的区分一下1.get提交的时候数据放到URL后面,post放在HTTP协议消息体中。2.get数据量大小有限制,2KB,post理论上没限制。3.get的安全性比post差。下面来看看cocos2d-x中怎么来与服务器传递数据。首先配置环境原创 2014-08-14 13:55:44 · 417 阅读 · 0 评论 -
新版播放粒子
添加粒子:void PopStarManager::AddParticlePool(){ CCLOG("popstar---AddParticlePool----1"); m_ParticleBatchNodeStar =CCParticleBatchNode::create("pop_stars.png"); m_ParticleBatchNodeStar->retain();原创 2014-06-19 13:08:32 · 741 阅读 · 0 评论 -
如何创建Cocos2D-X的项目(版本号2.2)
1.下载python(建议2.7版本)并且安装。我的安装路径是C:\Python27 2.将python的安装目录添加到系统变量中去。比如C:\Python27,用分号隔开。 3.在cocos2d-x-2.2的目录中进入到\tools\project-creator目录下,按住shift右击,选择在当前位置打开命令窗口。 4.运行如下语句:python create_p原创 2014-07-22 14:03:37 · 323 阅读 · 0 评论 -
CCTouch坐标
CCTouch是以屏幕左上点为原点,所以需要坐标转换CCPoint pt=CCPoint(0,0);CCRect rt = StageManager::getInstance()->m_arrvecGameElement[i][j].m_pGameElement->m_ccSprite->boundingBox();rt.origin=pt; if (rt.containsPo原创 2014-01-06 10:24:29 · 445 阅读 · 0 评论 -
关于回调函数(带参数的回调函数)
class PropLayer : public CCLayer{public: PropLayer(void); virtual ~PropLayer(void); virtual void Init(UIButton* _PropButton, int _iPropNum)=0; void TouchEvent(CCObject *pSender, TouchEventType原创 2014-01-10 15:23:48 · 6795 阅读 · 0 评论 -
数据存储localStorage的使用方法
//初始化数据库。如果路径为空,它将创建一个内存数据库void localStorageInit( const char *fullpath);//释放分配的资源void localStorageFree();//设置存储内容void localStorageSetItem( const char *key, const char *value);原创 2014-02-08 13:58:42 · 1692 阅读 · 0 评论 -
UIButton使用plist文件的方法
m_PropButton->loadTextures(_strButton->getCString(), _strButton->getCString() ,"",UI_TEX_TYPE_PLIST);UI_TEX_TYPE_PLIST该宏是通知程序使用plist文件UI_TEX_TYPE_LOCAL该宏是通知程序使用正常路径的文件原创 2014-02-13 10:12:15 · 854 阅读 · 0 评论 -
CCArmature动画播放完后执行回调函数的方法
m_armSpring = CCArmature::create("tanhuang");m_armSpring->getAnimation()->setMovementEventCallFunc(this,movementEvent_selector(PaySpringLayer::StopArmature));void PaySpringLayer::StopArmature(原创 2014-03-07 17:28:28 · 2481 阅读 · 0 评论 -
CCSpriteBatchNode读取plist
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile("popstar.plist", "popstar.png");//先将plist读到缓存中原创 2014-04-30 14:56:19 · 820 阅读 · 0 评论 -
如何读取UI的动画
原创 2014-04-29 16:04:29 · 410 阅读 · 0 评论 -
CCTMXTiledMap
读取地图属性:CCDictionary* dic = m_pTmxTiledMap->getProperties();if (dic){CCString* strValue = (CCString*)dic->valueForKey("tid");}原创 2014-03-19 09:36:59 · 411 阅读 · 0 评论 -
关于cocos2dx的回调使用
GameTools::buttonPressedAction(widget,CCCallFunc::create(this,callfunc_selector(GameMainMenu::toStageMap)));原创 2014-04-17 16:14:23 · 388 阅读 · 0 评论 -
关于CCArmature的内存泄漏
CCArmature::create之后需要手动调用 arm->removeFromParentAndCleanup(false); 否则会发生内存泄漏原创 2014-04-02 17:02:00 · 1223 阅读 · 0 评论 -
UIButton点击缩放或禁止缩放
添加UIButton按下状态的图片会禁止缩放,不添加则原创 2014-05-08 15:19:21 · 1205 阅读 · 0 评论 -
UILayer设置UIButton优先级
不同的UILayer之间可设置不同的优先级,这样可以禁止其它层原创 2014-05-09 09:41:01 · 856 阅读 · 0 评论 -
sprite动态更新资源
ccsprite * m_sptRebirthProp = ccsprite::create();//创建精灵m_sptRebirthProp ->initWithTexture(CCTextureCache::sharedTextureCache()->addImage("prop_th_shop.png"));//更新资源,可动态更新。原创 2014-04-11 10:51:56 · 519 阅读 · 0 评论 -
场景的生命周期
1、构造函数2、onenter函数3、onEnter原创 2014-06-07 14:54:34 · 380 阅读 · 0 评论 -
cocos2d-x 获取当前时间
long int Common::sysTime(){time_t now; time(&now);return now;}long millisecondNow() { struct cc_timeval now; CCTime::gettimeofdayCocos2d(&now, NULL); return (now.tv_sec原创 2014-07-21 09:56:00 · 436 阅读 · 0 评论 -
CCScale9Sprite九宫格
CCScale9Sprite * spt9 = CCScale9Sprite::create("1.png");spt9->setPreferredSize(CCSize(300,200));//设置内部spt9->setCapInsets(CCRect(4,4,10,10));//设置外部(左上角为原点)原创 2014-05-28 19:58:43 · 810 阅读 · 0 评论 -
ClippingNode裁切节点
CCClippingNode * Clipper = CCClippingNode::create();Clipper->setInverted(true);//设置底板可见Clipper->setAlphaThreshold( 0 );//设置绘制模板的alpha值为0 this->addChild(Clipper);CCNode * Stencil = CCNode原创 2014-05-28 20:42:27 · 1165 阅读 · 0 评论 -
lua富文本将表情符转换为图片,将文字改变颜色,适用于新手引导
local face_regs = { '//(ku)', '//(nuli)', '//(ty)', '//(xiao)', '//(xin)', '//(yun)', '//(zk)' }--表情符号local function face_reg_rep(s) return "<img src='" .. s .. ".png' type='1' />"end--m...原创 2019-04-02 16:02:02 · 729 阅读 · 0 评论