void HelloWorld::onData(void* data)
{
    auto goodsdata = (GoodsData*)data;
    if (!goodsdata->isCreate())
    {
        
        if (!_washing)
        {
             _washing = Sprite::create(goodsdata->getResPath());
             addChild(_washing);
        }
        else{
            log("change image");
            _washing->setTexture(goodsdata->getResPath());
            _washing->setVisible(true);
            _washing->setScale(1.0f);
        }
        _washing->setAnchorPoint(Vec2(0.5f,1.618f));
        goodsdata->setCreate(true);
       
    }
    if (scaleAnimation == 1)
    {
        //放小动画
        if (_washing->getScale() > 0.1)
        _washing->setScale(_washing->getScale()-0.03);
    }
}
示例#2
0
void AboutScene::createUI()
{
    // Add Backgrouond image
    CCSprite* bg = CCSprite::create(getResPath(ABOUT_BG_IMG));
    bg->setScaleX(SCALEX);
    bg->setScaleY(SCALEY);
    bg->setPosition(ccp(winSize.width * 0.5, winSize.height * 0.5));
    this->addChild(bg);
    
    // Add Scene title
    CCSprite* title_scene = CCSprite::create(getResPath(ABOUT_TITLE_SCENE_IMG));
    title_scene->setScale(SCALE);
    title_scene->setPosition(ccp(winSize.width * 0.5, winSize.height - 45 * SCALEY));
    this->addChild(title_scene);
    
    // Add Text Background
    CCSprite* txt_bg = CCSprite::create(getResPath(ABOUT_TEXT_BG_IMG));
    txt_bg->setScaleX(SCALEX);
    txt_bg->setScaleY(SCALEY);
    txt_bg->setPosition(ccp(winSize.width * 0.5, winSize.height * 0.5 + 20 * SCALEY));
    this->addChild(txt_bg);
    
    // Add Text
    CCSprite* txt_title = CCSprite::create(getResPath(ABOUT_TITLE_GAME_IMG));
    txt_title->setPosition(ccp(winSize.width * 0.5, winSize.height - 165 * SCALEY));
    txt_title->setScale(SCALE);
    this->addChild(txt_title);
    
    CCSprite* txt_game = CCSprite::create(getResPath(ABOUT_TEXT_GAME));
    txt_game->setScale(SCALE);
    txt_game->setPosition(ccp(winSize.width * 0.5, 750 * SCALEY));
    this->addChild(txt_game);
    
    // Add "Tell a Friend" button  //Change by kerberos Yposition  -old 407
    CCMenuItemImage* btn_email = CCMenuItemImage::create(getResPath(ABOUT_BTN_EMAIL_IMG_NOR), getResPath(ABOUT_BTN_EMAIL_IMG_PRS), this, menu_selector(AboutScene::emailHandler));
    btn_email->setScale(SCALE * 0.8);
    btn_email->setPosition(ccp(415 * SCALEX, 312 * SCALEY));
    
//    // Add Link Button  // removed by kerberos
//    CCMenuItemImage* btn_link = CCMenuItemImage::create(getResPath(ABOUT_BTN_LINK_IMG_NOR), getResPath(ABOUT_BTN_LINK_IMG_PRS), this, menu_selector(AboutScene::linkHandler));
//    btn_link->setScale(SCALE * 0.8);
//    btn_link->setPosition(ccp(415 * SCALEX, 312 * SCALEY));
    
    // Add mainmenu button
    CCMenuItem* btn_menu = CCMenuItemImage::create(getResPath(ABOUT_BTN_MAINMENU_IMG_NOR), getResPath(ABOUT_BTN_MAINMENU_IMG_PRS), this, menu_selector(AboutScene::mainmenuHandler));
    btn_menu->setScale(SCALE * 0.8);
    btn_menu->setPosition(ccp(415 * SCALEX, 217 * SCALEY));
    
    CCMenu* menu = CCMenu::create(btn_menu, btn_email, NULL);
    menu->setPosition(CCPointZero);
    this->addChild(menu);
    
    // Add Character
    CCSprite* character = CCSprite::create(getResPath(ABOUT_CHARACTER_IMG));
    character->setScale(SCALE);
    character->setAnchorPoint(ccp(0, 0));
    character->setPosition(ccp(10 * SCALEX, 10 * SCALEY));
    this->addChild(character);
}
示例#3
0
void IntroScene::createUI()
{
    // Add background image
    CCSprite* bg_spt = CCSprite::create(getResPath(INTRO_BACKGROUND_IMGAE));
    bg_spt->setScaleX(SCALEX);
    bg_spt->setScaleY(SCALEY);
    bg_spt->setPosition(ccp(winSize.width * 0.5, winSize.height * 0.5));
    this->addChild(bg_spt);
    
    // Add description bg
    CCSprite* des_bg = CCSprite::create(getResPath(INTRO_DESCRIPTION_BG_IMG));
    des_bg->setScaleX(SCALEX);
    des_bg->setScaleY(SCALEY * 0.5);
    des_bg->setPosition(ccp(winSize.width * 0.5, 798 * SCALEY));
    this->addChild(des_bg);
    
    // Add description text
    CCSprite* des = CCSprite::create(getResPath(INTRO_DESCRIPTION_IMG));
    des->setScale(MIN(SCALEX, SCALEY));
    des->setPosition(ccp(winSize.width * 0.5, 800 * SCALEY));
    this->addChild(des);
    
    // Add character
    CCSprite* character = CCSprite::create(getResPath(INTRO_CHARACTER_IMG));
    character->setScale(SCALE * 0.9);
    character->setPosition(ccp(167 * SCALEX, 385 * SCALEY));
    this->addChild(character);
    
    // Add blue and yellow chair
    CCSprite* bl_chair = CCSprite::create(getResPath(CHAIR_BLUE_IMG));
    bl_chair->setScale(SCALE * 0.9);
    bl_chair->setPosition(ccp(140 * SCALEX, 243 * SCALEY));
    this->addChild(bl_chair);
    
    CCSprite* yl_chair = CCSprite::create(getResPath(CHAIR_YELLOW_IMG));
    yl_chair->setScale(SCALE * 0.9);
    yl_chair->setPosition(ccp(506 * SCALEX, 243 * SCALEY));
    this->addChild(yl_chair);
    
    // Add play, mainmenu buttons
    CCMenuItem* playItem = CCMenuItemImage::create(getResPath(INTRO_PLAY_BUTTON_IMAGE_NOR), getResPath(INTRO_PLAY_BUTTON_IMAGE_PRS), this, menu_selector(IntroScene::gotoplay));
    playItem->setScale(MIN(SCALEX, SCALEY));
    playItem->setPosition(175 * SCALEX, 50 * SCALEY);
    
    CCMenuItem* mainmenuItem = CCMenuItemImage::create(getResPath(INTRO_MAINMENU_BUTTON_IMAGE_NOR), getResPath(INTRO_MAINMENU_BUTTON_IMAGE_PRS), this, menu_selector(IntroScene::gotoMainMenu));
    mainmenuItem->setScale(MIN(SCALEX, SCALEY));
    mainmenuItem->setPosition(467 * SCALEX, 50 * SCALEY);
    
    CCMenu* menu = CCMenu::create(playItem, mainmenuItem, NULL);
    menu->setPosition(CCPointZero);
    this->addChild(menu);
}
void AnnounceLayer::startShowHints()
{
    CCCallFunc* endAction = CCCallFunc::create(this, callfunc_selector(AnnounceLayer::endShowHints));
    
    CCSprite* hint = CCSprite::create(getResPath(GAME_DIFF_HIT_IMG));
    hint->setScale(SCALE);
    hint->setPosition(ccp(winSize.width * 0.5, 772 * SCALEY));
    hint->setTag(TAG_HINTSPT);
    this->addChild(hint);
    
    hint->runAction(CCSequence::create(CCBlink::create(2.0, 3), endAction, NULL));
}
示例#5
0
bool Hero::init()
{
    if (!CCSprite::init()) {
        return false;
    }
    CCSpriteFrameCache* cache = CCSpriteFrameCache::sharedSpriteFrameCache();
    cache->addSpriteFramesWithFile(getResPath("images/gameScene/character_animation.plist"));
    options = GameOptions::getInstance();
    stop();
//    shoot();
    return true;
}
void AnnounceLayer::endCountDownAction()
{
    // Do next count down
    countdown--;
    if (countdown > 0) {
        this->doNextCountDown();
    }
    else
    {
        // Remove the old countdown label
        countLabel->removeFromParentAndCleanup(true);
        countLabel = NULL;
        
        CCSprite* letter_name_bg = CCSprite::create(getResPath(GAMESCENE_LETTER_BG_IMG));
        letter_name_bg->setScaleX(SCALEX);
        letter_name_bg->setScaleY(SCALEY);
        letter_name_bg->setPosition(ccp(480 * SCALEX, 200 * SCALEY));
        this->addChild(letter_name_bg);
        
        // Done countdown. Announce the letters
        ((GameScene*)this->getParent())->changeGameState(GAME_START_GAME);
    }
}
示例#7
0
bool CCAlertView::init(const char *_title, const char *_message, const char *_cancel, const char *_ok, CCObject *_object, SEL_CallFuncO _selector1, SEL_CallFuncO _selector2) {
    this->setTouchPriority(0);
    object    = _object;
    selector1 = _selector1;
    selector2 = _selector2;

    CCSize size = CCDirector::sharedDirector()->getWinSize();
    this->setTouchEnabled(true);
    this->setPosition(ccp(size.width / 2.0f, size.height / 2.0f));

    CCSprite *bgSprite = CCSprite::create(getResPath("images/mainmenuScene/blank.png"));
    bgSprite->setTextureRect(CCRect(0, 0, size.width, size.height));
    bgSprite->setColor(ccc3(0, 0, 0));
	bgSprite->setOpacity(0);
    this->addChild(bgSprite, 1000);

    CCSprite *alertViewSprite = CCSprite::create(getResPath("images/mainmenuScene/alert_bg.png"));
    this->addChild(alertViewSprite, 1001);


    CCMenuItemImage *button1 = CCMenuItemImage::create(getResPath("images/mainmenuScene/btn_ok_nor.png"), getResPath("images/mainmenuScene/btn_ok_prs.png"), this, menu_selector(CCAlertView::button1Callback));
    CCMenuItemImage *button2 = CCMenuItemImage::create(getResPath("images/mainmenuScene/btn_cancel_nor.png"), getResPath("images/mainmenuScene/btn_cancel_prs.png"), this, menu_selector(CCAlertView::button2Callback));
//	button1->setOpacity(180);
//	button2->setOpacity(180);

    CCMenu *alertMenu = CCMenu::create(button1, button2, NULL);
    alertMenu->alignItemsHorizontallyWithPadding(20);
    alertMenu->setPosition(ccp(alertViewSprite->getContentSize().width / 2.0f, (button1->getContentSize().height / 2.0f)));
    alertViewSprite->addChild(alertMenu);
 
    //80,150
    
    
    CCLabelTTF *titleLabel = CCLabelTTF::create(_title, STANDARD_FONT, 70);
    titleLabel->setAnchorPoint(CCPoint(0.5, 1.0));
    titleLabel->setPosition(ccp(alertViewSprite->getContentSize().width / 2.0f, alertViewSprite->getContentSize().height - 20 * SCALE));
    alertViewSprite->addChild(titleLabel);

    CCLabelTTF *messageLabel = CCLabelTTF::create(_message, STANDARD_FONT, 40, CCSizeMake(alertViewSprite->getContentSize().width - 50 * SCALE, 0), kCCTextAlignmentCenter);
    messageLabel->setAnchorPoint(CCPoint(0.5, 1.0));
    messageLabel->setPosition(ccp(alertViewSprite->getContentSize().width / 2.0f, titleLabel->getPositionY() - 100));
    alertViewSprite->addChild(messageLabel);

    CCLabelTTF *cancelLabel = CCLabelTTF::create(_cancel, STANDARD_FONT, 18);
    cancelLabel->setPosition(ccp(button2->getContentSize().width / 2.0f, button2->getContentSize().height / 2.0f));
    button1->addChild(cancelLabel);

    CCLabelTTF *OKlabel = CCLabelTTF::create(_ok, STANDARD_FONT, 18);
    OKlabel->setPosition(ccp(button1->getContentSize().width / 2.0f, button1->getContentSize().height / 2.0f));
    button2->addChild(OKlabel);

    bgSprite->runAction(CCFadeTo::create(0.1f, 150));

//    CCFiniteTimeAction *scale1 = CCScaleTo::create(0.15f, 1.1f);
//    CCFiniteTimeAction *scale2 = CCScaleTo::create(0.1f, 0.9f);
//    CCFiniteTimeAction *scale3 = CCScaleTo::create(0.05f, 1.0f);
    alertViewSprite->setScaleX(SCALEX);
    alertViewSprite->setScaleY(SCALEY);
    //alertViewSprite->runAction(CCSequence::create(scale1, scale2, scale3, NULL));

	return true;
}
示例#8
0
void TargetLayer::makeTargets(int countTargets, cocos2d::CCArray *targetLetters)
{
    this->removeAllChildrenWithCleanup(true);
    targets->removeAllObjects();
    
    int targetCount = 0;
    int rows =(countTargets + DEFAULT_COLS - 1) / DEFAULT_COLS;
    int cols = countTargets > DEFAULT_COLS?DEFAULT_COLS:countTargets;
    
    float targetSpaceX = (winSize.width - (2.0 * TARGET_AREA_PAD)) / cols;

    for (int rowIndex = 0; rowIndex < rows; rowIndex++) {
        
        // Check if more targets than letters. Just stop making targets.
        if (targetCount >= targetLetters->count() && targetLetters->count() != 0) {
            break;
        }
        
        cols = (countTargets - targetCount) > DEFAULT_COLS?DEFAULT_COLS:(countTargets - targetCount);
        targetSpaceX =  (winSize.width - (2.0 * TARGET_AREA_PAD)) / cols;
        CCLog("Cols is %d", cols);
        CCLog("targetSpaceX is %f", targetSpaceX);
        
        // Calculate the Y position
        float yPos = winSize.height - TARGET_AREA_Y_OFFSET - 120 * SCALEY * rowIndex;
        
        
        for (int colIndex = 0; colIndex < cols ; colIndex++) {
            
            // Calculate the X position
            float xPos = (colIndex * targetSpaceX) + targetSpaceX * 0.5 + TARGET_AREA_PAD;
            
            // Add Targret Sprite
            CCSprite* targetSprite = CCSprite::create(getResPath(GAME_TARGET_IMG));
            targetSprite->setPosition(ccp(xPos, yPos));
            targetSprite->setScale(SCALE * 1.2);
            this->addChild(targetSprite, 0);
            
            // Add the target sprite
            targets->addObject(targetSprite);
            
            string fontName;
            bool fontType = GameOptions::getInstance()->getFontType();
            if (fontType) {
                fontName = FONT_LETTER_NOR;
            }else
            {
                fontName = FONT_LETTER_CUR;
            }

            CCLabelTTF* letterSprite;
            if (targetLetters->count() > 0) {
                // Get the next letter for the target
                CCInteger* numberObj = (CCInteger*)targetLetters->objectAtIndex(targetCount);
                int letterIndex = numberObj->getValue();
                
                targetSprite->setTag(TAG_TARGET + letterIndex);
                
                // Make the letter sprite(Label) on the target. Font size is the target width
                string letterString = AlphaBetUtils::getInstance()->getKeyMapFont(letterIndex);
                letterSprite = CCLabelTTF::create(letterString.c_str(), fontName.c_str(), targetSprite->getContentSize().width * 0.6);
                letterSprite->setVerticalAlignment(kCCVerticalTextAlignmentCenter);
                letterSprite->setHorizontalAlignment(kCCTextAlignmentCenter);
                letterSprite->setDimensions(CCSize(targetSprite->getContentSize().width, targetSprite->getContentSize().width));
            }else
            {
                // Fill-in an Empty Target
                letterSprite = CCLabelTTF::create("", fontName.c_str(), targetSprite->getContentSize().width);
            }
            
            letterSprite->setColor(letterColor);
            CCPoint centerPoint = ccp(targetSprite->getContentSize().width * 0.5, targetSprite->getContentSize().height * 0.5);
            letterSprite->setPosition(centerPoint);
            targetSprite->addChild(letterSprite, 10, TAG_LETTER);
            
            targetCount++;
        }
    }
    
    CCLOG("Targets Count is %d", targets->count());
}