码迷,mamicode.com
首页 > 编程语言 > 详细

Cocos2d-x 网络线程与UI线程的同步 继承Node但是不执行Update

时间:2014-11-09 06:19:24      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:cocos2d-x   网络   继承   unity   

在最近的项目中,开始用到网络。

网络通信的话就要有一个循环来接收数据,于是想到直接到Cocos2d-x的主循环中去修改。

Cocos2d-x的主循环在CCDirector的MainLoop函数中,在这里我们可以添加一个NetworkClient::Update()来执行网络通信的循环。

但是这样就会修改Cocos2d-x的引擎代码。


想到Unity中的做法,把NetworkClient继承自Node,这样就能继承Node的Update了。

但是加上之后,在AppDelegate中New NetworkClient并没有执行Update。


原因如下,虽然添加了scheduleUpdate(); 但是当前Node并没有进入。平时使用都是直接被add到父节点。现在单独把Node作为一个节点,就需要在New之后执行以下代码:

在初始化函数中添加:

		this->onEnter();
		this->onEnterTransitionDidFinish();
		scheduleUpdate();

终于成功。

附代码:

#include "AppController.h"
#include "LogoScene.h"

AppController::AppController()
{
}

bool AppController::init()
{
	if (Node::init())
	{
		this->onEnter();
		this->onEnterTransitionDidFinish();
		scheduleUpdate();

		// create a scene. it's an autorelease object
		//auto scene = HelloWorld::scene();
		auto scene=LogoScene::create();

		// run
		Director::getInstance()->runWithScene(scene);


		
		return true;
	}
	return false;
}

void AppController::update(float dt)
{
	//开始EventManager消息机制;
	int a=0;

	//开始网络通讯;
}

AppController::~AppController()
{

}


Cocos2d-x 网络线程与UI线程的同步 继承Node但是不执行Update

标签:cocos2d-x   网络   继承   unity   

原文地址:http://blog.csdn.net/huutu/article/details/40944867

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!