cocos2d 动作回调函数

// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }

    CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
    CCPoint origin = CCDirector::sharedDirector()->getVisibleOrigin();
    CCSize winSize = CCDirector::sharedDirector()->getWinSize(); 

    auto *png1=CCSprite::create("1.png");
    png1->setPosition(ccp(0,120));
    addChild(png1);

    CCFiniteTimeAction *action = CCSequence::create(
        CCMoveBy::create(2.0f, CCPointMake(winSize.width / 2, 0)),
        CCCallFunc::create(this, callfunc_selector(HelloWorld::actionCallback)), NULL); 

    CCFiniteTimeAction *actionN = CCSequence::create(
        CCMoveBy::create(2.0f, CCPointMake(winSize.width / 2, 0)),
        CCCallFuncN::create(this, callfuncN_selector(HelloWorld::actionCallbackN)), NULL); 

    CCFiniteTimeAction *actionND = CCSequence::create(
        CCMoveBy::create(2.0f, CCPointMake(winSize.width / 2, 0)),
        CCCallFuncND::create(this, callfuncND_selector(HelloWorld::actionCallbackND), (void *) "Callback Data"), NULL); 

    png1->runAction(action);
    //png1->runAction(actionN);
    //png1->runAction(actionND); 

    return true;
}

void HelloWorld::actionCallback()
{
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    CCLabelTTF *label = CCLabelTTF::create("Action Callback!", "Marker Felt", 32);
    label->setPosition(ccp(winSize.width / 2, winSize.height / 2));
    this->addChild(label);
}

void HelloWorld::actionCallbackN(CCNode *pSender)
{
    CCSprite *sprite = (CCSprite *) pSender; 

    // 回调变红色
    sprite->setColor(ccRED);
} 

void HelloWorld::actionCallbackND(CCNode *pSender, void *data)
{
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    CCSprite *sprite = (CCSprite *) pSender; 

    // 回调变蓝色
    sprite->setColor(ccBLUE); 

    // 接收回调数据
    CCLabelTTF *label = CCLabelTTF::create((char *) data, "Marker Felt", 32);
    label->setPosition(ccp(winSize.width / 2, winSize.height / 2));
    this->addChild(label); 

    CCLog((char *) data);
} 
时间: 2024-12-20 22:15:42

cocos2d 动作回调函数的相关文章

动作回调函数 (CallFunc,CallFuncN,CCCallFuncND)

动作回调函数 (例子) 1 bool HelloWorld::init() 2 { 3 ////////////////////////////// 4 // 1. super init first 5 if ( !Layer::init() ) 6 { 7 return false; 8 } 9 10 Size visibleSize = Director::getInstance()->getVisibleSize(); 11 Vec2 origin = Director::getInsta

cocos2dx中的假动作,又称动作回调函数

1.动作与动画的区别 动作是:定时器+属性的改变,是帧循环的累积效应 动画是:帧图片的播放效果,我们知道电影的播放就是快速播放的胶片,这就是动画的原理 2.假动作:又称动作回调函数 四大类假动作: callfunc_selector()        对应的回调函数是:void funcCallBack(); callfuncN_selector()      对应的回调函数是:void funcNCallBack(CCNode *node); callFuncND_selector()   对

cocos3 动作回调函数

FiniteTimeAction *actionOne = Sequence::create( CCScaleTo::create(1.0f,0.5f,1.5f), CCFadeIn::create(1.0f), CCCallFunc::create(this,callfunc_selector(HelloWorld::actionCallBack)), NULL ); sp->runAction(actionOne);

cocos2dx动作结束回调函数的用法

cocos2dx中一个action结束后想正确使用回调函数 要用如下写法 CCFiniteTimeAction *actionOne = CCSequence::create( CCScaleTo::create(1.0f,0.5f,1.5f), CCFadeIn::create(1.0f), CCCallFunc::create(this,callfunc_selector(xx::menuSetVisableFalse)), NULL );

【Cocos2d-x 3.0 基础系列一】 各类回调函数写法汇总

一.button回调 1. Lambda 表达式,C++11 Lambda 赋予了Cocos2d-x 3.0创建回调函数的灵活性. auto itemNor = Sprite::create("CloseNormal.png"); auto menuItem = MenuItemSprite::create(itemNor,nullptr,nullptr,[](Ref* sender) { log("show this msg."); }); auto menu =

Cocos2d-x 3.0 回调函数

一.按钮回调 1. Lambda 表达式,C++11 Lambda 赋予了Cocos2d-x 3.0创建回调函数的灵活性. [cpp] view plaincopy auto itemNor    =   Sprite::create("CloseNormal.png"); auto menuItem   =   MenuItemSprite::create(itemNor,nullptr,nullptr,[](Ref* sender) { log("show this ms

Python 多进程实战 & 回调函数理解与实战

这篇博文主要讲下笔者在工作中Python多进程的实战运用和回调函数的理解和运用. 多进程实战 实战一.批量文件下载 从一个文件中按行读取 url ,根据 url 下载文件到指定位置,用多进程实现. #!/usr/local/python27/bin/python2.7 from multiprocessing import Process,Pool import os,time,random,sys import urllib # 文件下载函数 def filedown(url,file):  

关于jQuery回调函数的定义及用法实例

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset=" utf-8"> 5 <meta name="author" content="http://www.jb51.net/" /> 6 <title>脚本之家</title> 7 <style type="text/css"> 8

Java/Android中的函数调用&amp;回调函数&amp;自定义回调函数

在做Android自定义控件时遇到要自定义回调函数的问题,想想自己还暂时没有那么精深的技术,赶紧返过头回来再重新研究Java中回调函数的问题.然而不幸的是,网上太多杂乱的帖子和博客都是转来转去,而且都是那一篇"C中的回调函数.....指针.....java....",一点看不出来是自己的思路,估计都是哪哪哪抄来的!(呵呵,要么就是吐槽对了,要么就是我水平太烂读不懂还妄加评论)还有一些很不错的文章,我会在最后参考中加上链接,大家可以看看. 那么来开始我们的正题--什么是回调函数? 我们一