Esempio n. 1
0
void MainLayer::initMenu()
{
    do
    {
        //单机游戏
        //3.0两种写法
        MenuItemImage *pSingleGameItem = MenuItemImage::create(
                                             "button_singleNormal.png",
                                             "button_singleSelected.png",
                                             std::bind(&MainLayer::menuCloseCallback,this,std::placeholders::_1));
        /*
        MenuItemImage *pSingleGameItem = MenuItemImage::create(
                "button_singleNormal.png",
                "button_singleSelected.png",
                CC_CALLBACK_1(MainLayer::menuCloseCallback, this));
        */
        CC_BREAK_IF(! pSingleGameItem);
        pSingleGameItem->setTag(MENU_SINGLE_GAME_TAG);
        pSingleGameItem->setAnchorPoint(Vec2(0.5,0.5));
        //多人游戏
        MenuItemImage *pMultiGameItem = MenuItemImage::create(
                                            "button_multiNormal.png",
                                            "button_multiSelected.png",
                                            std::bind(&MainLayer::menuCloseCallback,this,std::placeholders::_1));
        CC_BREAK_IF(! pMultiGameItem);
        pMultiGameItem->setTag(MENU_MULTI_GAME_TAG);

        //关于我们
        MenuItemImage *pAboutUsItem = MenuItemImage::create(
                                          "button_aboutNormal.png",
                                          "button_aboutSelected.png",
                                          std::bind(&MainLayer::menuCloseCallback,this,std::placeholders::_1));
        CC_BREAK_IF(! pAboutUsItem);
        pAboutUsItem->setTag(MENU_ABOUT_GAME_TAG);
        //退出游戏
        MenuItemImage *pExitGameItem = MenuItemImage::create(
                                           "button_exitNormal.png",
                                           "button_exitSelected.png",
                                           std::bind(&MainLayer::menuCloseCallback,this,std::placeholders::_1));
        pExitGameItem->setTag(MENU_EXIT_GAME_TAG);
        CC_BREAK_IF(! pExitGameItem);

        pMenu = Menu::create(pSingleGameItem, pMultiGameItem,pAboutUsItem ,pExitGameItem, NULL);
        pMenu->setPosition(Vec2(Director::getInstance()->getWinSize().width/2, Director::getInstance()->getWinSize().height/2));
        pMenu->alignItemsVerticallyWithPadding(50);
        CC_BREAK_IF(! pMenu);

        this->addChild(pMenu);
    }
    while(0);
}
Esempio n. 2
0
bool PauseLayer::init(GameScene* gameScene)
{
	if (!Layer::init())
		return false;

	PauseLayer::gameScene = gameScene;
	
	//background
	backGround = Sprite::create("Pause/bk.png");
	backGround->setAnchorPoint(Vec2(0, 0));
	backGround->setPosition(0, 0);
	backGround->setOpacity(0);
	this->addChild(backGround);
	//pause background
	pauseBk = Sprite::create("Pause/pause_bk.png");
	pauseBk->setPosition(640/2, 960+278/2);
	this->addChild(pauseBk);
	//menu
	Menu* menu = Menu::create();
	menu->setAnchorPoint(Vec2(0, 0));
	menu->setPosition(0, 0);
	pauseBk->addChild(menu);
	//home button 
	MenuItemImage* homeButton = MenuItemImage::create(
		"Pause/home1.png", "Pause/home2.png", "", 
		CC_CALLBACK_1(PauseLayer::buttonEvent, this));
	homeButton->setPosition(515 / 2 - 81 * 2 + 30, 85);	//position
	homeButton->setTag(BUTTON_HOME);
	menu->addChild(homeButton);
	//play button
	MenuItemImage* playButton = MenuItemImage::create(
		"Pause/play1.png", "Pause/play2.png", "",
		CC_CALLBACK_1(PauseLayer::buttonEvent, this));
	playButton->setPosition(515 / 2, 85);	//position
	playButton->setTag(BUTTON_PLAY);
	menu->addChild(playButton);
	//replay button
	MenuItemImage* replayButton = MenuItemImage::create(
		"Pause/replay1.png", "Pause/replay2.png", "",
		CC_CALLBACK_1(PauseLayer::buttonEvent, this));
	replayButton->setPosition(515 / 2 + 81 * 2 - 30, 85);	//position
	replayButton->setTag(BUTTON_REPLAY);
	menu->addChild(replayButton);

	this->setVisible(false);

	return true;
}
Esempio n. 3
0
void PianoKeyBoard::drawImageKey(cocos2d::Node *node, PianoKey *key, int zOder)
{
    if (key == NULL) {
        
        return ;
    }
    
    Rect rct = key->rect_;
    
    MenuItemImage *keySprite  ;

    if (key->type_ != BLACK_KEY) {
        keySprite = MenuItemImage::create(whiteNormalPix_, whiteDownPix_, CC_CALLBACK_1(PianoKeyBoard::keyTouched, this)) ;
        keySprite->setPosition(rct.origin.x, rct.origin.y) ;
    }else
    {
        keySprite = MenuItemImage::create(blackNormalPix_, blackDownPix_, CC_CALLBACK_1(PianoKeyBoard::keyTouched, this)) ;
        keySprite->setPosition(rct.origin.x, rct.origin.y+119) ;
    }
    
    keySprite->setAnchorPoint(Point::ZERO) ;
    keySprite->setTag(key->note_) ;

    node->addChild(keySprite, zOder) ;
    

}
Esempio n. 4
0
//TODO 屏蔽事件穿透
void BattleScene::createBottomBar()
{
	LayerColor *bottom = LayerColor::create(Color4B(0, 0, 100, 100));
	bottom->setContentSize(Size(WINSIZE.width, 120));
	bottom->setPosition(Point(0, 0));
	addChild(bottom);

	int totalCount = 11;
	int index = 0;
	Vector<MenuItem *> items;
	auto soldierInCamp = BattleData::getInstance()->getAttackSoldierInCamp();
	map<int, vector<DSoldier *>>::iterator it;
	for(it=soldierInCamp.begin(); it!=soldierInCamp.end(); it++)
	{
		MenuItemImage *item = MenuItemImage::create("ui/616.0.png", "ui/617.0.png", "ui/618.0.png", CC_CALLBACK_1(BattleScene::selectArmy, this));
		item->setTag(it->first);
		items.pushBack(item);
		index++;

		//head
		Size size = item->getContentSize();
		char img[20];
		sprintf(img, "ui/%d.png", it->first / 100);
		auto head = Sprite::create(img);
		head->setAnchorPoint(Point(0.5, 0.5));
		head->setPosition(size.width/2, size.height/2);
		item->addChild(head);
		
		char text[20];
		sprintf(text, "X %d", it->second.size());
		TTFConfig config("fonts/tahoma.ttf",16);
		auto count = Label::createWithTTF(config, text, TextHAlignment::LEFT);
		count->setPosition(size.width/2, size.height - count->getContentSize().height);
		item->addChild(count);
		//初始化为第一个兵种
		if (m_selectedSoldierType <= 0)
		{
			m_selectedSoldierType = it->first;
		}
		
	}
	for (int i = index; i < totalCount; i++)
	{
		MenuItemImage *item = MenuItemImage::create("ui/616.0.png", "ui/617.0.png", "ui/618.0.png", CC_CALLBACK_1(BattleScene::selectArmy, this));
		item->setEnabled(false);
		items.pushBack(item);
	}

	Size bottomSize = bottom->getContentSize();
	Sprite *spItem = Sprite::create("ui/618.0.png");
	Size itemSize = spItem->getContentSize();
	float padding = (bottomSize.width - itemSize.width * totalCount) / (totalCount + 1);

	UIRadioButton *radio = UIRadioButton::createWithArray(items);
	radio->alignItemsHorizontallyWithPadding(padding);
	radio->setPosition(Point(bottomSize.width / 2, bottomSize.height / 2));
	radio->setSelectedIndex(0);
	bottom->addChild(radio);
}
Esempio n. 5
0
bool PopupLayer::addButton(const char *normalImage, const char *selectedImage, const char *title, int tag)
{
	//Size winSize = CCDirector::getInstance()->getWinSize();
    Point pCenter = ccp(winSize.width / 2, winSize.height / 2);
    
    // 创建图片菜单按钮
    MenuItemImage* menuImage = MenuItemImage::create(normalImage, selectedImage, this, menu_selector(PopupLayer::buttonCallback));
    menuImage->setTag(tag);
    menuImage->setPosition(pCenter);
    
    // 添加文字说明并设置位置

	Size imenu = menuImage->getContentSize();
    LabelTTF* ttf = LabelTTF::create(title, "", 20);
    ttf->setColor(ccc3(0, 0, 0));
    ttf->setPosition(ccp(imenu.width / 2, imenu.height / 2));
    menuImage->addChild(ttf);


    getMenuButton()->addChild(menuImage);
    return true;
}
Esempio n. 6
0
bool PopLayer::addButton(const char* normalImage, const char* selectedImage, const char* title, int tag /*= 0*/)
{
    Size visibleSize = Director::getInstance()->getVisibleSize();
    Vec2 pCenter(visibleSize.width / 2, visibleSize.height / 2);
    
    // 创建图片菜单按钮
    MenuItemImage* menuImage = MenuItemImage::create(normalImage, selectedImage, CC_CALLBACK_1(PopLayer::buttonCallback, this));
    menuImage->setTag(tag);
    //menuImage->setPosition(pCenter);
    
    // 添加文字说明并设置位置
    if(title != NULL)
    {
        Size imenu = menuImage->getContentSize();
        LabelTTF* ttf = LabelTTF::create(title, "", 20);
        ttf->setColor(Color3B(0, 0, 0));
        ttf->setPosition(Vec2(imenu.width / 2, imenu.height / 2));
        menuImage->addChild(ttf);
    }
    
    
    getMenuButton()->addChild(menuImage);
    return true;
}
//一些菜单的设置不看也可以,与地图相关的操作在okCallback里面
void HelloWorld::createInitMenu()
{
	Size visibleSize = Director::getInstance()->getVisibleSize();

	m_setLayer = Layer::create();
	this->addChild(m_setLayer);

	//方向设置
	Vector<MenuItem*> dirItemFronts;
	dirItemFronts.pushBack(MenuItemFont::create("Right to Left"));
	dirItemFronts.pushBack(MenuItemFont::create("Left to Right"));
	dirItemFronts.pushBack(MenuItemFont::create("Top to Bottom"));
	dirItemFronts.pushBack(MenuItemFont::create("Bottom to Top"));
	m_dirSelItem = MenuItemToggle::createWithCallback(
		CC_CALLBACK_1(HelloWorld::toggleCallback,this),
        dirItemFronts);

	m_dirSelItem->setAnchorPoint(Vec2(0.5f,0.5f));
	m_dirSelItem->setPosition(Vec2(visibleSize.width/2 ,
								visibleSize.height/4*3));

    MenuItemImage *nextDir = MenuItemImage::create(
                                        "nextNor.png",
                                        "nextCli.png",
                                        CC_CALLBACK_1(HelloWorld::dirChangeCallback,this));

	nextDir->setTag(1);
	nextDir->setAnchorPoint(Vec2(0.5f,0.5f));
	nextDir->setPosition(Vec2(visibleSize.width/6*5,
                             visibleSize.height/4*3));

	MenuItemImage *lastDir = MenuItemImage::create(
                                        "lastNor.png",
                                        "lastCli.png",
                                        CC_CALLBACK_1(HelloWorld::dirChangeCallback,this));
	lastDir->setTag(-1);
	lastDir->setAnchorPoint(Vec2(0.5f,0.5f));
	lastDir->setPosition(Vec2(visibleSize.width/6,
                             visibleSize.height/4*3));



   //模式设置
	Vector<MenuItem*> modeItemFronts;
	modeItemFronts.pushBack(MenuItemFont::create("Loop Mode"));
	modeItemFronts.pushBack(MenuItemFont::create("Drop Mode"));
	m_modeSelItem = MenuItemToggle::createWithCallback(
	   CC_CALLBACK_1(HelloWorld::toggleCallback,this),
       modeItemFronts);

	m_modeSelItem->setAnchorPoint(Vec2(0.5f,0.5f));
	m_modeSelItem->setPosition(Vec2(visibleSize.width/2 ,
								visibleSize.height/3));

	m_modeSelItem->setAnchorPoint(Vec2(0.5f,0.5f));
	m_modeSelItem->setPosition(Vec2(visibleSize.width/2 ,
								visibleSize.height/2));

	MenuItemImage *nextMode = MenuItemImage::create(
                                        "nextNor.png",
                                        "nextCli.png",
                                        CC_CALLBACK_1(HelloWorld::modeChangeCallback,this));
	nextMode->setTag(1);
	nextMode->setAnchorPoint(Vec2(0.5f,0.5f));
	nextMode->setPosition(Vec2(visibleSize.width/6*5,
                             visibleSize.height/2));

	MenuItemImage *lastMode = MenuItemImage::create(
                                        "lastNor.png",
                                        "lastCli.png",
                                        CC_CALLBACK_1(HelloWorld::modeChangeCallback,this));
	lastMode->setTag(-1);
	lastMode->setAnchorPoint(Vec2(0.5f,0.5f));
	lastMode->setPosition(Vec2(visibleSize.width/6,
                             visibleSize.height/2));

	MenuItemFont* pOK = MenuItemFont::create("OK",CC_CALLBACK_1(HelloWorld::okCallback,this));
	pOK->setPosition(Vec2(visibleSize.width/3,visibleSize.height/4));

	MenuItemFont* pQuit = MenuItemFont::create("Quit",CC_CALLBACK_1(HelloWorld::quitCallback,this));
	pQuit->setPosition(Vec2(visibleSize.width/3*2,visibleSize.height/4));

	Menu* pMenu = Menu::create(lastDir,m_dirSelItem,nextDir,lastMode,m_modeSelItem,nextMode,pOK,pQuit,NULL);
	pMenu->setPosition(Vec2::ZERO);

    m_setLayer->addChild(pMenu);

	m_bg = 0;
}
void HelloWorld::okCallback(Ref* pSender)
{
	if(!m_bg)
	{
		m_runLayer = Layer::create();
		this->addChild(m_runLayer);

		int dirSel = m_dirSelItem->getSelectedIndex();
		switch (dirSel)
		{
		case 0:
			m_bg = ScrollingBackground::create(ScrollDirection::SD_RIGHT_TO_LEFT);
			m_direction = ScrollDirection::SD_RIGHT_TO_LEFT;
			break;
		case 1:
			m_bg = ScrollingBackground::create(ScrollDirection::SD_LEFT_TO_RIGHT);
			m_direction = ScrollDirection::SD_LEFT_TO_RIGHT;
			break;
		case 2:
			m_bg = ScrollingBackground::create(ScrollDirection::SD_TOP_TO_BOTTOM);
			m_direction = ScrollDirection::SD_TOP_TO_BOTTOM;
			break;
		case 3:
			m_bg = ScrollingBackground::create(ScrollDirection::SD_BOTTOM_TO_TOP);
			m_direction = ScrollDirection::SD_BOTTOM_TO_TOP;
			break;
		default:
			break;
		}

		m_runLayer->addChild(m_bg,1);

		for (int i = 1; i < 5; i++)
		{
			addBgSprite(i);
		}

		/*
		//当有一个背景精灵彻底离开屏幕的时候的消息,两种方式
		if(m_modeSelItem->getSelectedIndex()==0)
			m_bg->setBgChangeEventListener(this,bgSpriteChangeEvent(HelloWorld::loopBgChangeCallback)); //循环模式
		else
			m_bg->setBgChangeEventListener(this,bgSpriteChangeEvent(HelloWorld::dropBgChangeCallback)); //丢弃模式
		*/
		//当有一个背景精灵彻底离开屏幕的时候的消息,两种方式
		if(m_modeSelItem->getSelectedIndex()==0)
			m_bg->setBgChangeEventListener(CC_CALLBACK_3(HelloWorld::loopBgChangeCallback,this)); //循环模式
		else
			m_bg->setBgChangeEventListener(CC_CALLBACK_3(HelloWorld::dropBgChangeCallback,this)); //丢弃模式

		/*
		//当背景精灵移动时候的消息,两种方式
		m_bg->setBgMoveEventListener(this,bgSpriteMoveEvent(HelloWorld::bgMoveCallback));
		*/
		//当背景精灵移动时候的消息,两种方式
		m_bg->setBgMoveEventListener(CC_CALLBACK_2(HelloWorld::bgMoveCallback,this));

		m_velocity = 300.0f;
		m_bgSprite = m_bg->getCurBgSprite();
		m_bg->beginContinuousScroll(m_velocity);

		//一个跟随背景移动的物体
		m_pItem = Sprite::create("item.png");
		m_pItem->setAnchorPoint(Vec2(0.5f,0.5f));
		m_pItem->setPosition(Vec2(0.0f,0.0f));
		m_runLayer->addChild(m_pItem,2);

		//pItem锚点一直都是(0.5,0.5),坐标一直是(0.0,0.0),注意看当画面切换的时候他会出现在哪里
		//背景精灵精灵的锚点不同,会影响pItem的位置
		m_pItem->setPosition(m_bg->getCurBgSprite()->getPosition());
		




		/*下面的是一些菜单的设置,不看也可以*/
		Size visibleSize = Director::getInstance()->getVisibleSize();

		//返回按钮
		MenuItemFont* back = MenuItemFont::create("back",CC_CALLBACK_1(HelloWorld::backCallback,this));
		back->setAnchorPoint(Vec2(1.0f,1.0f));
		back->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/2.0f));

		//设置相反速度的按钮
		MenuItemFont* reverse = MenuItemFont::create("reverse",CC_CALLBACK_1(HelloWorld::reverseCallback,this));

		//暂停
		MenuItemToggle* pause = MenuItemToggle::createWithCallback(CC_CALLBACK_1(HelloWorld::pauseCallback,this),
																	MenuItemFont::create("pause"),
																	MenuItemFont::create("resume"),
																	NULL);
		pause->setPosition(Vec2(0.0f,50.0f));

		//上一个画面
		MenuItemImage* lastBg = MenuItemImage::create("lastBgNor.png","lastBgCli.png","",CC_CALLBACK_1(HelloWorld::nextBgCallback,this));
		lastBg->setTag(0);
		lastBg->setAnchorPoint(Vec2(0.0f,0.5f));
		lastBg->setPosition(Vec2(-visibleSize.width/2.0f,0.0f));

		//下一个画面
		MenuItemImage* nextBg = MenuItemImage::create("NextBgNor.png","NextBgCli.png","",CC_CALLBACK_1(HelloWorld::nextBgCallback,this));
		nextBg->setTag(1);
		nextBg->setAnchorPoint(Vec2(1.0f,0.5f));
		nextBg->setPosition(Vec2(visibleSize.width/2.0f,0.0f));

		//增加背景精灵
		MenuItemFont* add = MenuItemFont::create("add background",CC_CALLBACK_1(HelloWorld::addBgSpriteCallback,this));
		add->setPosition(Vec2(0.0f,-50.0f));

		Menu* pMenu = Menu::create(pause,reverse,add,lastBg,nextBg,back,NULL);
		pMenu->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/2.0f));
		m_runLayer->addChild(pMenu,3);

		//文字提示:
		Color3B color(255,0,0);
		m_itemTipsLabel = Label::createWithTTF("","fonts/arial.ttf",17.0f);
		m_itemTipsLabel->setColor(color);
		m_itemTipsLabel->setAnchorPoint(Vec2(0.5f,0.5f));
		m_itemTipsLabel->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/6.0f));
		m_runLayer->addChild(m_itemTipsLabel,3);

		m_numBgLabel = Label::createWithTTF("","fonts/arial.ttf",17.0f);
		m_numBgLabel->setColor(color);
		m_numBgLabel->setAnchorPoint(Vec2(0.5f,0.5f));
		m_numBgLabel->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/10.0f));
		m_runLayer->addChild(m_numBgLabel,3);

		
		m_addTipsLabel = Label::createWithTTF("","fonts/arial.ttf",17.0f);
		m_addTipsLabel->setColor(color);
		m_addTipsLabel->setAnchorPoint(Vec2(0.5f,0.5f));
		m_addTipsLabel->setPosition(Vec2(visibleSize.width/2.0f,visibleSize.height/10.0f*9.0f));
		m_addTipsLabel->setString("");
		m_runLayer->addChild(m_addTipsLabel,3);

		setTextTips(m_bg->getCurBgSprite());

		this->removeChild(m_setLayer);
		m_setLayer = 0;
	}
}
bool TestFragmentEffect::init()
{
    if ( !TestBase::init() )
    {
        return false;
    }
    
    //都是菜单设置,可以不看
	MenuItemFont* MIF0 = MenuItemFont::create("ES_NONE");
	MIF0->setColor(Color3B::RED);
	MIF0->setTag(0);
	MenuItemFont* MIF1 = MenuItemFont::create("ES_BLACK_AND_WHITE");
	MIF1->setColor(Color3B::RED);
	MIF1->setTag(0);
	MenuItemFont* MIF2 = MenuItemFont::create("ES_OLD_PHOTOS");
	MIF2->setColor(Color3B::RED);
	MIF2->setTag(0);
	MenuItemFont* MIF3 = MenuItemFont::create("ES_INVERT");
	MIF3->setColor(Color3B::RED);
	MIF3->setTag(0);
	MenuItemFont* MIF4 = MenuItemFont::create("ES_BURNS");
	MIF4->setColor(Color3B::RED);
	MIF4->setTag(0);
	MenuItemFont* MIF5 = MenuItemFont::create("ES_POISONING");
	MIF5->setColor(Color3B::RED);
	MIF5->setTag(0);
	MenuItemFont* MIF6 = MenuItemFont::create("ES_COLD");
	MIF6->setColor(Color3B::RED);
	MIF6->setTag(0);
	MenuItemFont* MIF7 = MenuItemFont::create("ES_USER_DEFINED");
	MIF7->setColor(Color3B::RED);
	MIF7->setTag(0);
	m_sel = MenuItemToggle::createWithCallback(CC_CALLBACK_1(TestFragmentEffect::toggleCallback,this),MIF0,MIF1,MIF2,MIF3,MIF4,MIF5,MIF6,MIF7,NULL);

	m_sel->setTag(0);
	m_sel->setAnchorPoint(Vec2(0.5f,1.0f));
	m_sel->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 2, 
							m_visibleOrigin.y + m_visibleSize.height - 7));
	
	MenuItemImage* last = MenuItemImage::create("FragmentEffect/lastNor.png","FragmentEffect/lastCli.png","",CC_CALLBACK_1(TestFragmentEffect::toggleCallback,this));
	last->setTag(-1);
	last->setAnchorPoint(Vec2(0.5f,1.0f));
	last->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 10 * 1,
						   m_visibleOrigin.y + m_visibleSize.height));

	MenuItemImage* next = MenuItemImage::create("FragmentEffect/nextNor.png","FragmentEffect/nextCli.png","",CC_CALLBACK_1(TestFragmentEffect::toggleCallback,this));
	next->setTag(1);
	next->setAnchorPoint(Vec2(0.5f,1.0f));
	next->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 10 * 9, 
						   m_visibleOrigin.y + m_visibleSize.height));

	MenuItemFont* UDF = MenuItemFont::create("goto ES_USER_DEFINED",CC_CALLBACK_1(TestFragmentEffect::gotoUserDefine,this));
	UDF->setColor(Color3B::RED);
	UDF->setTag(0);
	UDF->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 2, 
						  m_visibleOrigin.y + m_visibleSize.height - 50.0f));

    Menu* pMenu = Menu::create(m_sel,last,next,UDF,NULL);
	pMenu->setPosition(Vec2::ZERO);
    this->addChild(pMenu, 1);


    m_bgSprite = Sprite::create("FragmentEffect/HelloWorld.png");
    m_bgSprite->setPosition(Vec2(m_visibleOrigin.x + m_visibleSize.width / 2, 
								 m_visibleOrigin.y + m_visibleSize.height / 2));
    this->addChild(m_bgSprite, 0);
	
	//加载骨骼动画
	ArmatureDataManager::getInstance()->addArmatureFileInfo("FragmentEffect/Hero0.png","FragmentEffect/Hero0.plist","FragmentEffect/Hero.ExportJson");
	m_armature = Armature::create("Hero");
	m_armature->getAnimation()->playWithIndex(0);
	m_armature->setPosition(Vec2(m_visibleOrigin.x+m_visibleSize.width/2, 0.0f));
	m_armature->setAnchorPoint(Vec2(0.5f,0.0f));
	this->addChild(m_armature,1);

	//淡出淡入这样的动作依然可以使用
	m_armature->runAction(Sequence::create(FadeOut::create(0.5f),FadeIn::create(0.5f),0));

	//就这几句是设置效果的,toggleCallback 和 gotoUserDefine方法里面也有
	m_indexSprite   = FragmentEffect::getInstance()->addEffectNode(m_bgSprite); //m_indexSprite接收返回的序号,setEffect 和 getEffectSelect 的时候使用
	m_indexArmature = FragmentEffect::getInstance()->addEffectNode(m_armature); //m_indexArmature接收返回的序号,setEffect 和 getEffectSelect 的时候使用


	float f[] = {
		0.5f,0.0f,0.0f,0.0f,
		0.0f,0.5f,0.0f,0.0f,
		0.0f,0.0f,0.5f,0.0f,
		0.0f,0.0f,0.0f,0.5f
	};
	FragmentEffect::getInstance()->addEffectMatrix(Mat4(f));//增加自定义特效矩阵,序号从 ES_USER_DEFINED 开始增加

    return true;
}
Esempio n. 10
0
// on "init" you need to initialize your instance
bool ReadyScene::init()
{
	//////////////////////////////
	// 1. super init first
	if (!Layer::init())
	{
		return false;
	}

	Singleton<WeaponDB>::getInstance();

	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("clotharmor.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("thunder.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("ogre.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("pikachu.plist");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("thunder_effect.plist");

	Size visibleSize = Director::getInstance()->getVisibleSize();
	Vec2 origin = Director::getInstance()->getVisibleOrigin();

	s = nullptr;

	auto backgroundSprite = Sprite::create("start_background.png");
	backgroundSprite->setPosition(Point(visibleSize.width / 2 + origin.x, visibleSize.height / 2 + origin.y));
	backgroundSprite->setScale(3);
	this->addChild(backgroundSprite);


	auto tmap = TMXTiledMap::create("StartMap.tmx");

	gamemap = new GameMap(tmap);

	player = new Player(this, gamemap);

	player->getSpriteObject()->setScale(1.5f);
	player->getSprite()->setPosition(Point(visibleSize.width * 7 / 24, visibleSize.height /2));

	s = new Weapon(1);
	player->setWeapon(s);

	MenuItemImage* PlayMenu = MenuItemImage::create("play_button1.png", "play_button2.png", CC_CALLBACK_1(ReadyScene::onMenu, this));
	PlayMenu->setScale(2.5f);

	Menu* menu = Menu::create(PlayMenu, NULL);
	menu->setPosition(visibleSize.width * 0.3f, visibleSize.height * 0.3f);
	this->addChild(menu, 1);

	MenuItemImage* LeftButton = MenuItemImage::create("left_button1.png", "left_button2.png", CC_CALLBACK_1(ReadyScene::onLeftButton, this));
	LeftButton->setScale(2.5f);

	Menu* left_bt = Menu::create(LeftButton, NULL);
	left_bt->setPosition(Point(visibleSize.width / 6, visibleSize.height / 2));
	this->addChild(left_bt, 1);

	MenuItemImage* RightButton = MenuItemImage::create("right_button1.png", "right_button2.png", CC_CALLBACK_1(ReadyScene::onRightButton, this));
	RightButton->setScale(2.5f);

	Menu* right_bt = Menu::create(RightButton, NULL);
	right_bt->setPosition(Point(visibleSize.width * 3 / 7, visibleSize.height   / 2));
	this->addChild(right_bt, 1);


	auto weapon_sprite = Sprite::create("weapon_font.png");
	weapon_sprite->setScale(2.0f);
	weapon_sprite->setPosition(Point(visibleSize.width * 0.55f, visibleSize.height * 0.75f));
	this->addChild(weapon_sprite);

	auto scrollView = ScrollView::create(Size(Singleton<WeaponDB>::getInstance()->getWeaponDBSize() * 48, 48));
	scrollView->setDirection(ScrollView::Direction::HORIZONTAL);
	scrollView->setContentOffset(Vec2(0, 0));
	scrollView->setContentOffsetInDuration(Vec2(0, 0), 10.f);
	scrollView->setPosition(Point(visibleSize.width * 0.5f, visibleSize.height * 0.6f));
	this->addChild(scrollView);

	
	MenuItemImage *test;
	Menu *menutest;

	for (int i = 1; i <= Singleton<WeaponDB>::getInstance()->getWeaponDBSize(); i++)
	{
		std::string str = StringUtils::format("%s_menu.png", Singleton<WeaponDB>::getInstance()->getWeaponData(i).path.c_str());

		test = MenuItemImage::create(str, str, CC_CALLBACK_1(ReadyScene::test2, this));
		test->setScale(2.5f);
		test->setTag(i);

		menutest = ScrollMenu::create(test, NULL);
		menutest->setPosition(Point((48 * i), 20));
		scrollView->addChild(menutest);
	}

	this->schedule(schedule_selector(ReadyScene::gameLogic), 0.2);

	return true;

}