void GameUILayer::_updatePlayerInfoHandler(cocos2d::Ref *pSender) { auto param = static_cast<PlayerInfoParam*>(pSender); auto wrapper = getChildByTag(kTagWraper); auto label = static_cast<Label*>(wrapper->getChildByTag(param->getType())); auto action = label->getActionByTag(100); if(param->getValue()==0) { label->stopAllActions(); label->setScale(1.0f); }else if(action==nullptr&¶m->getType()!=PlayerInfoParam::kTypeCoin){ auto scaleBig = ScaleBy::create(0.4f, 1.5f); auto scaleSmall = scaleBig->reverse(); auto seq = Sequence::create(scaleBig,scaleSmall, NULL); auto rep = RepeatForever::create(seq); rep->setTag(100); label->runAction(rep); } if(param->getType()==PlayerInfoParam::kTypeCoin) { char buffer[50]; sprintf(buffer, "%06d",param->getValue()); label->setString(buffer); }else{ label->setString(Util::itoa(param->getValue())); } }
void TitleScene::update(float dt) { auto human = (Sprite *)this->getChildByTag(1); if (human->getActionByTag(1)) { return; } this->removeChildByTag(1); addHuman(); }
void GameEntityView::doShake() { //CCLog("shake entity view "); #define SHAKE_TAG 0xDEADBEEF if( getActionByTag(SHAKE_TAG) == NULL ) { CCSequence* shake = CCSequence::create( CCRotateBy::create(0.1f, 10, 0), CCRotateBy::create(0.2f, -20, 0), CCRotateBy::create(0.1f, 10, 0), NULL); shake->setTag(SHAKE_TAG); runAction(shake); } }
void MenuItemLabel::selected() { // subclass to change the default action if(m_isEnabled) { MenuItem::selected(); Action *action = getActionByTag(kZoomActionTag); if( action ) stopAction(action); else m_originalScale = getScale(); Action *zoomAction = new ScaleTo(0.1f, m_originalScale * 1.2f); zoomAction->setTag(kZoomActionTag); runAction(zoomAction); } }
void SpriteButton::ccTouchEnded(CCTouch *pTouch, CCEvent *pEvent) { m_state = kSpriteStateUngrabbed; CCAction *action = getActionByTag(kZoomActionTag); if (action) { stopAction(action); } float scaleValue = 1.0f * scale; CCAction *zoomAction = CCScaleTo::create(0.05f, scaleValue); zoomAction->setTag(kZoomActionTag); runAction(zoomAction); (m_pListener->*m_pfnSelector)(this); }
void MenuItemLabel::selected() { // subclass to change the default action if(_enabled) { MenuItem::selected(); Action *action = getActionByTag(kZoomActionTag); if (action) { this->stopAction(action); } else { _originalScale = this->getScale(); } Action *zoomAction = ScaleTo::create(0.1f, _originalScale * 1.2f); zoomAction->setTag(kZoomActionTag); this->runAction(zoomAction); } }
void CCMenuItemLabel::selected() { // subclass to change the default action if(m_bEnabled) { CCMenuItem::selected(); CCAction *action = getActionByTag(kZoomActionTag); if (action) { this->stopAction(action); } else { m_fOriginalScale = this->getScale(); } CCAction *zoomAction = CCScaleTo::create(0.1f, m_fOriginalScale * 1.2f); zoomAction->setTag(kZoomActionTag); this->runAction(zoomAction); } }
void GameMenuItem::selected() { // subclass to change the default action if(m_bIsEnabled) { CCMenuItem::selected(); CCAction *action = getActionByTag(kZoomActionTag); if (action) { this->stopAction(action); } else { m_fOriginalScale = this->getScale(); } CCAction *zoomAction = CCEaseElasticOut::create(CCScaleTo::create(0.5f, m_fOriginalScale * mScaleFactor)); zoomAction->setTag(kZoomActionTag); this->runAction(zoomAction); } }
bool SpriteButton::ccTouchBegan(CCTouch *touch, CCEvent *pEvent) { if (m_state != kSpriteStateUngrabbed) return false; if ( !containsTouchLocation(touch) ) return false; m_state = kSpriteStateGrabbed; CCAction *action =getActionByTag(kZoomActionTag); if (action) { stopAction(action); } float scaleValue = 1.1f * scale; CCAction *zoomAction = CCScaleTo::create(0.05f, scaleValue); zoomAction->setTag(kZoomActionTag); runAction(zoomAction); return true; }
void AnimationManager::removeActionsByTag(const int tag, Node *node){ auto am = Director::getInstance()->getActionManager(); while (am->getActionByTag(tag, node)){ am->removeActionByTag(tag, node); } }
void Player::update(float dt) { //////////爆風に当たってたらゲームオーバーにする/////////// if (scene->mapcontrol->getblock(getPosition())->firenull() == false) { gameover(); } ///////enterキーでボム設置/////////////// if (obsevekey->getkey((Observekey::Key)playerkey.bomset) == 2 && bomcon->getChildrenCount()<maximumbom) { bomset(); } //////主人公移動//////////////////////// //主人公がmoveアニメーションしていないとき if (getActionByTag(1) == nullptr) { static int x = 0, y = 0; if (obsevekey->getkey((Observekey::Key)playerkey.right) != 0) { if (x == 16 && y == 0) {} else { setTexture("シロボン右.png"); stopActionByTag(2); runAction(action[RIGHT]); x = 16; y = 0; } } else if (obsevekey->getkey((Observekey::Key)playerkey.left) != 0) { if (x == -16 && y == 0) {} else { setTexture("シロボン左.png"); stopActionByTag(2); runAction(action[LEFT]); x = -16; y = 0; } } else if (obsevekey->getkey((Observekey::Key)playerkey.up) != 0) { if (x == 0 && y == 16) {} else { setTexture("シロボン前.png"); stopActionByTag(2); runAction(action[FRONT]); x = 0; y = 16; } } else if (obsevekey->getkey((Observekey::Key)playerkey.down) != 0) { if (x == 0 && y == -16) {} else { setTexture("シロボン後.png"); stopActionByTag(2); runAction(action[BACK]); x = 0; y = -16; } } else { stopActionByTag(2); x = 0; y = 0; return; } //移動先に障害物がないとき if (scene->mapcontrol->getblock(Vec2(getPositionX() + x,getPositionY() + y))->obstaclecheck() == false) { //1ブロック分移動 auto move = MoveBy::create(speed, Vec2(x, y)); move->setTag(1); runAction(move); } } }