void ArmatureComponentTest::defaultPlay() { CCComRender *pBlowFish = static_cast<CCComRender*>(m_rootNode->getChildByTag(10007)->getComponent("CCArmature")); pBlowFish->getNode()->runAction(CCMoveBy::create(10.0f, ccp(-1000.0f, 0))); CCComRender *pButterflyfish = static_cast<CCComRender*>(m_rootNode->getChildByTag(10008)->getComponent("CCArmature")); pButterflyfish->getNode()->runAction(CCMoveBy::create(10.0f, ccp(-1000.0f, 0))); }
void TmxMapComponentTest::defaultPlay() { CCComRender *tmxMap = static_cast<CCComRender*>(m_rootNode->getChildByTag(10015)->getComponent("CCTMXTiledMap")); CCActionInterval *actionTo = CCSkewTo::create(2, 0.f, 2.f); CCActionInterval *rotateTo = CCRotateTo::create(2, 61.0f); CCActionInterval *actionScaleTo = CCScaleTo::create(2, -0.44f, 0.47f); CCActionInterval *actionScaleToBack = CCScaleTo::create(2, 1.0f, 1.0f); CCActionInterval *rotateToBack = CCRotateTo::create(2, 0); CCActionInterval *actionToBack = CCSkewTo::create(2, 0, 0); tmxMap->getNode()->runAction(CCSequence::create(actionTo, actionToBack, NULL)); tmxMap->getNode()->runAction(CCSequence::create(rotateTo, rotateToBack, NULL)); tmxMap->getNode()->runAction(CCSequence::create(actionScaleTo, actionScaleToBack, NULL)); }
/// 这里实现的是动画移动过程; /// 重点:CCArmature *pButterFlyFish= (CCArmature *)(pFishRender->getNode()); void HelloWorld::update( float delta ) { /// 获取节点信息 只有节点信息才是我们设置的信息 CCNode* pFishNode = m_pLoginScene->getChildByTag(10009); CCPoint p1 = pFishNode->getPosition(); //获取comrender组件 CCComRender *pFishRender = (CCComRender*)(m_pLoginScene->getChildByTag(10009)->getComponent("CCArmature")); //转换为armature 这里的armature是我们在动画中制作的相关数据了,因此下面我们要获得信息将会是我们在动画制作的数据 /// 而不是在场景制作中的数据; CCArmature *pButterFlyFish= (CCArmature *)(pFishRender->getNode()); /// 这里获得动画中的坐标 CCPoint pt = pButterFlyFish->getPosition(); if (!m_bDirection) { p1.x -= 2.0f; if (10 > p1.x) { m_bDirection = true; } } else { p1.x += 2.0f; if (900 < p1.x) { m_bDirection = false; } } pFishNode->setPosition(p1); }
void HelloWorld::update(float delta) { if(m_bStart) { CCArmature *pHero = (CCArmature*)(m_pGameScene->getChildByTag(10005)->getComponent("CCArmature")->getNode()); pHero->getParent()->setPositionX(pHero->getParent()->getPositionX() + m_fSpeed); CCArmature *pEnemy = (CCArmature*)(m_pGameScene->getChildByTag(10006)->getComponent("CCArmature")->getNode()); if(ccpDistance(ccp(pHero->getParent()->getPositionX(), 0), ccp(pEnemy->getParent()->getPositionX(), 0)) < m_fAttackDis) { pHero->getAnimation()->play("attack"); pHero->getAnimation()->setMovementEventCallFunc(this, movementEvent_selector(HelloWorld::animationEvent)); m_bStart = false; } } if(m_bDead) { CCComRender *pUIRender = static_cast<CCComRender*>(m_pGameScene->getChildByTag(10007)->getComponent("GUIComponent")); UILayer *pUILayer = static_cast<UILayer*>(pUIRender->getNode()); UILoadingBar *pHPLoadingBar = static_cast<UILoadingBar*>(pUILayer->getWidgetByName("hp02_LoadingBar")); UILoadingBar *pMPLoadingBar = static_cast<UILoadingBar*>(pUILayer->getWidgetByName("mp02_LoadingBar")); pHPLoadingBar->setPercent(m_fPercentage); pMPLoadingBar->setPercent(m_fPercentage); m_fPercentage -= 2.0f; if (m_fPercentage < 0.0f) { unscheduleUpdate(); } } }
void ParticleComponentTest::defaultPlay() { CCComRender* Particle = static_cast<CCComRender*>(m_rootNode->getChildByTag(10020)->getComponent("CCParticleSystemQuad")); CCActionInterval* jump = CCJumpBy::create(5, ccp(-500,0), 50, 4); CCFiniteTimeAction* action = CCSequence::create( jump, jump->reverse(), NULL); Particle->getNode()->runAction(action); }
void UIComponentTest::touchEvent(CCObject *pSender, TouchEventType type) { switch (type) { case TOUCH_EVENT_BEGAN: { CCComRender *pBlowFish = static_cast<CCComRender*>(m_rootNode->getChildByTag(10010)->getComponent("CCArmature")); pBlowFish->getNode()->runAction(CCMoveBy::create(10.0f, ccp(-1000.0f, 0))); CCComRender *pButterflyfish = static_cast<CCComRender*>(m_rootNode->getChildByTag(10011)->getComponent("CCArmature")); pButterflyfish->getNode()->runAction(CCMoveBy::create(10.0f, ccp(-1000.0f, 0))); } break; default: break; } }
CCArmature* SceneEditorTestLayer::getFish(int nTag, const char *pszName) { if (m_pCurNode == NULL) { return NULL; } CCComRender *pFishRender = (CCComRender*)(m_pCurNode->getChildByTag(nTag)->getComponent(pszName)); return (CCArmature *)(pFishRender->getNode()); }
void UIComponentTest::defaultPlay() { CCComRender *render = static_cast<CCComRender*>(m_rootNode->getChildByTag(10025)->getComponent("GUIComponent")); cocos2d::ui::TouchGroup* touchGroup = static_cast<cocos2d::ui::TouchGroup*>(render->getNode()); UIWidget* widget = static_cast<UIWidget*>(touchGroup->getWidgetByName("Panel_154")); UIButton* button = static_cast<UIButton*>(widget->getChildByName("Button_156")); button->addTouchEventListener(this, toucheventselector(UIComponentTest::touchEvent)); }
void ArmatureActionState::removeAll() { do { CCNode *pNode = SceneReader::sharedSceneReader()->getNodeByTag(_nTag); CC_BREAK_IF(pNode == NULL); CCComRender *pRender = (CCComRender*)(pNode->getComponent(_ComName.c_str())); CC_BREAK_IF(pRender == NULL); CCArmature *pAr = (CCArmature *)(pRender->getNode()); CC_BREAK_IF(pAr == NULL); TriggerMng::sharedTriggerMng()->removeArmatureMovementCallBack(pAr, this, movementEvent_selector(ArmatureActionState::animationEvent)); } while (0); }
void ArmaturePlayAction::done() { do { CCNode *pNode = SceneReader::sharedSceneReader()->getNodeByTag(_nTag); CC_BREAK_IF(pNode == NULL); CCComRender *pRender = (CCComRender*)(pNode->getComponent(_comName.c_str())); CC_BREAK_IF(pRender == NULL); CCArmature *pAr = (CCArmature *)(pRender->getNode()); CC_BREAK_IF(pAr == NULL); pAr->getAnimation()->play(_aniname.c_str()); } while (0); }
void HelloWorld::animationEvent(CCArmature *pArmature, MovementEventType movementType, const char *movementID) { CCComRender *render = (CCComRender*)(m_pGameScene->getChildByTag(10006)->getComponent("CCArmature")); CCArmature *pEnemy = (CCArmature*)(render->getNode()); if (movementType == COMPLETE) { pEnemy->getAnimation()->play("death"); pArmature->getAnimation()->setMovementEventCallFunc(NULL, NULL); m_bDead = true; } }
bool ArmatureActionState::init() { do { CCNode *pNode = SceneReader::sharedSceneReader()->getNodeByTag(_nTag); CC_BREAK_IF(pNode == NULL); CCComRender *pRender = (CCComRender*)(pNode->getComponent(_comName.c_str())); CC_BREAK_IF(pRender == NULL); CCArmature *pAr = (CCArmature *)(pRender->getNode()); CC_BREAK_IF(pAr == NULL); TriggerMng::getInstance()->addArmatureMovementCallBack(pAr, this, movementEvent_selector(ArmatureActionState::animationEvent)); } while (0); return true; }
// on "init" you need to initialize your instance bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !CCLayer::init() ) { return false; } m_fTime = 0.0f; m_bStart = false; m_bDead = false; m_fPercentage = 100.0f; m_fSpeed = 4.0f; m_fAttackDis = 120.0f; m_pGameScene = NULL; CCNode *pGameScene = SceneReader::sharedSceneReader()->createNodeWithSceneFile("FightScene.json"); m_pGameScene = pGameScene; this->addChild(pGameScene); CCComRender *render = (CCComRender*)(m_pGameScene->getChildByTag(10005)->getComponent("CCArmature")); CCArmature *pArmature = (CCArmature*)(render->getNode()); pArmature->getAnimation()->play("run"); m_bStart = true; CCMenuItemFont *itemBack = CCMenuItemFont::create("End", this, menu_selector(HelloWorld::menuCloseCallback)); itemBack->setColor(ccc3(255, 255, 255)); itemBack->setPosition(ccp(VisibleRect::rightBottom().x - 50, VisibleRect::rightBottom().y + 25)); CCMenu *menuBack = CCMenu::create(itemBack, NULL); menuBack->setPosition(CCPointZero); menuBack->setZOrder(4); this->addChild(menuBack); scheduleUpdate(); return true; }
void EffectComponentTest::defaultPlay() { CCComRender *pRender = static_cast<CCComRender*>(m_rootNode->getChildByTag(10015)->getComponent("CCArmature")); CCArmature *pAr = static_cast<CCArmature*>(pRender->getNode()); pAr->getAnimation()->setMovementEventCallFunc(this, movementEvent_selector(EffectComponentTest::animationEvent)); }