Cocos2d-x 3.0-绘图节点Node中的Schedule
来源:互联网 发布:知乎 卢煜明 编辑:程序博客网 时间:2024/05/16 06:13
如何让HelloWorld项目中的HelloWorld文字实现自动运动呢?
有的童鞋会想到使用线程,不断修改Label的Position,
这样不行,因为在Cocos2d-x中只能在主线程中来修改Node中的信息,这是由于所有的node都是非线程安全的,如果我们的场景移除了node
在子线程种可能引用错误,所以,要让Node执行特定的变化,需要在当前的Node中使用Schedule
使用方法很简单
1。在当前的HelloWorldScne.h中添加一个方法在HelloWorldScene
如:
void gameLogic(float t); //注意这里的参数要设置为float
2.在HelloWorldScene::init方法添加以下代码:
this->schedule(schedule_select(HelloWorldScene::gameLogic),0.5);
还有把label设置一个tag
label->setTag(110);
3.在HelloWorldScne.cpp中实现这个方法
void HelloWorldScene::gameLogic(float t){
//在这里修改 HelloWorld 对应的Label的坐标
auto theLabel=this->getChildByTag(110);
theLabel->runAction(MoveBy::create(5,0.5));
if(theLable->getPositionX()>480){theLabel->setPositionX(0);}
}
这样就实现了HelloWorld的自动向右移动,每0.5秒移动5像素。
这里使用了runAction,实际上直接通过theLabel->setPositionX(newX)也可以,我们可以在这里修改Node的各种属性以达到对场景中的Node变换的作用。
- Cocos2d-x 3.0-绘图节点Node中的Schedule
- Cocos2d-x 3.0final 终结者系列教程09-绘图节点Node中的Schedule
- Cocos2d-x 3.0-绘图节点Node中的Action
- Cocos2d-x 3.0-绘图节点Node
- Cocos2d-x 3.0final 终结者系列教程10-绘图节点Node中的Action
- Cocos2d-x 3.0-绘图节点Node中的锚点和坐标系
- cocos2d-x 3.0 绘图节点——Node
- Cocos2d-x 3.0final 终结者系列教程08-绘图节点Node中的锚点和坐标系
- Cocos2d-x 3.0 Schedule in Node
- Cocos2d-x 3.0final 终结者系列教程07-绘图节点Node
- cocos2d-x中的计时器schedule
- Quick-Cocos2d-x中的绘图API
- cocos2d-x schedule用法
- cocos2d-x schedule 定时器
- cocos2d-x 定时器 schedule
- cocos2d-x 定时器 schedule
- cocos2d-x schedule 定时器
- cocos2d-x schedule
- Cocos2d-x 3.0-绘图节点Node
- Android 拍照上传与选择文件上传至服务器
- pat1036 Boys vs Girls
- Lua-5.3.0源代码阅读(1)
- Cocos2d-x 3.0-绘图节点Node中的锚点和坐标系
- Cocos2d-x 3.0-绘图节点Node中的Schedule
- 骑士的移动(Knight Moves)
- SDUT 2777 小P的故事——神奇的换零钱
- AsyncTask必知必会(二)
- 《Effective C++》:条款34:区分接口继承和实现继承
- Cocos2d-x 3.0-绘图节点Node中的Action
- netstat
- ssh免密码登陆配置及注意事项
- Cocos2d-x 3.0-触摸机制