原计划是开始学习cocos2dx socket客户端的开发,
在网上查了些资料,说为了防止程序假死,需要另起线程处理网络连接。
好吧,那就从创建线程开始。
这次我的环境是在Mac下。在网上查阅和参考了很多资料,感谢这些无私奉献的前辈们的努力。
进入话题。
头文件:
pthread_t th_socket; // 起这个名字本打算用在socket上的
int threadStart();// 启动线程的方法
static void* thread_funcation(void *arg);// 被启动的线程函数,注意必须是静态方法
函数定义:(我最喜欢把我的练习都写在HelloWorld类里面了,哈哈)
// 启动线程的方法
int HelloWorld::threadStart()
{
int errCode=0;
do {
pthread_attr_t tAttr;
errCode=pthread_attr_init(&tAttr);
CC_BREAK_IF(errCode!=0);
errCode=pthread_attr_setdetachstate(&tAttr, PTHREAD_CREATE_DETACHED);
if(errCode!=0)
{
pthread_attr_destroy(&tAttr);
break;
}
errCode=pthread_create(&th_socket, &tAttr, thread_funcation, this);
} while (0);
return errCode;
}
// 需要线程来完成的功能都写在这个函数里
void* HelloWorld::thread_funcation(void *arg)
{
CCLOG("thread started...");
return NULL;
}
然后我在HelloWorld::init()方法的后面加了一句代码来启动新线程:
this->threadStart();
编译后运行:
在输出窗口中可以看到:
说明线程正确执行。
分享到:
相关推荐
Cocos2d-x 中使用多线程 创建一个线程,第一个参数是线程ID,第二个描述为空,第三个是线程函数,在这个函数里写需要在线程里执行的事件,第四个是传递参数给函数。
cocos2d-x多线程和同步 cocos2d-x v2.2.0
cocos2d-x视频教程之Socket与多线程编程-源码 cocos2d-x视频教程之Socket与多线程编程-源码 cocos2d-x视频教程之Socket与多线程编程-源码
cocos2d-x多线程
项目中摘抄出来的代码,在LoadingLayer::onEnter()中,开了一个boost thread来加载资源
该文档中包含了在cocos2d中使用多线程opengl纹理的方法,包括如何关联opengl上线文,拷贝纹理,cocos中精灵sprite 中上传子线程的纹理。
MagicTools引擎,包括3d场景,材质,d3d与opengles两个渲染器,max导出插件,集成了cocos2d作为ui。 引擎架构如下: 1.MtFoundation:底层数学库、字符串处理、操作系统和编译器宏定义等底层封装库。这些功能放在了...
Cocos2d-x从2.x版本到上周刚刚才发布的Cocos2d-x 3.0 Final版,其引擎驱动核心依旧是一个单线程的“死循环”,一旦某一帧遇到了“大活儿”,比如Size很大的纹理资源加载或网络IO或大量计算,画面将 不可避免出现卡顿...
开发博客http://blog.csdn.net/iuoon/article/details/52328830
Cocos2d是一个大家庭,包括Cocos2d-iphone,Cocos2d-x,Cocos2d-javascript等。而在国内,Cocos2d-x则相对领先。在中国的2D手机游戏开发中,Cocos2d-x引擎的份额超过70%。不同家庭成员之间只是语言不同,而实现的接口...
这个例子是在cocos2d-x3.0的框架上,用curl实现下载,并支持断点续传(开了新线程),欢迎指点bug
cocos2d-x-designsize.psd cocos2d-x-designsize-landscape.psd 这些psds包含两层:一层带有“也许不可见”的红色,另一层带有“始终可见”的屏幕。 设计人员必须在“始终可见”层中设计所有重要内容。 根据运行...
cocos2d-x3.2线程安全的消息管理中心
cocos2d-x 3.0 中使用的 C++ 11 多线程互斥与同步
1、2D引擎还是3D引擎? 2、平台专用引擎还是跨平台引擎? 3、收费引擎还是开源引擎? 作为入门级选手,2D游戏显然更适合上手一些,另外适合果果这个年龄段的幼教类的游戏也多以2D游戏居多。3D游戏本身也太难了,...
2 因为独立于cocos2d自带的网络方式, 所以Cookie等需要特殊处理 2 coco2d 3.x 版本 class UploadFile : public cocos2d::Ref { public: UploadFile(); ~UploadFile(); public: /* 上传文件 */ void uploadFile...
红孩儿引擎内功心法修炼与Cocos2d-x之结点系统 (场景,层,精灵)
lib-Network 基于BSDSocket封装的跨平台多线程网络库,用于cocos2d-x游戏开发
用cocos2d-x引擎开发的C++电梯模拟调度程序,有可视化的界面。