zoukankan      html  css  js  c++  java
  • 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); 
    } 
  • 相关阅读:
    动态规划:POJ2576-Tug of War(二维费用的背包问题)
    动态规划:HDU3496-Watch The Movie(二维费用的背包问题)
    动态规划:HDU1712-ACboy needs your help(分组背包问题)
    水题:HDU1303-Doubles
    动态规划:HDU2844-Coins(多重背包的二进制优化)
    动态规划:HDU1059-Dividing(多重背包问题的二进制优化)
    动态规划:HDU1224-Free DIY Tour
    动态规划:HDU1864-最大报销额(处理带小数的dp问题)
    红黑树
    二叉树
  • 原文地址:https://www.cnblogs.com/yufenghou/p/3950399.html
Copyright © 2011-2022 走看看