Пример #1
0
void SceneGame::startClient(CCObject*obj)
{
	if (Net::Connect("127.0.0.1"))
	{
		// 把棋子倒过来
		for (int i = 0; i < 32; i++)
		{
			Stone* s = _s[i];
			s->_row = 9 - s->_row;
			s->_col = 8 - s->_col;
			s->setPosition(s->fromPlate());
		}

		// 开始接收
		Net::RecvStart();
		schedule(schedule_selector(SceneGame::CheckRecv));

		Net::_isConnected = true;
		_bRedSide = false;
		CCMenuItemFont *font = (CCMenuItemFont *)obj;
		CCMenuItemFont *server = (CCMenuItemFont *)font->getUserObject();
		server->setEnabled(false);
		font->setEnabled(false);
	}
	else
	{
		CCLog("Connect failure....");
	}
}
Пример #2
0
void SceneGame::startServer(CCObject*obj)
{
	CCMenuItemFont *font = (CCMenuItemFont *)obj;
	CCMenuItemFont *client = (CCMenuItemFont *)font->getUserObject();
	client->setEnabled(false);
	font->setEnabled(false);

	_bRedSide = true;
	Net::Accept();
	schedule(schedule_selector(SceneGame::CheckListen));
}
Пример #3
0
bool Options::init()
{
    if (!CCLayer::init()) {
        return false;
    }
    
    CCSize winSize = CCDirector::sharedDirector()->getWinSize();
    
    CCSprite *sp = CCSprite::create(s_loading);
    sp->setAnchorPoint(CCPointZero);
    addChild(sp, 0, 1);
    
    CCTexture2D *imageCache = CCTextureCache::sharedTextureCache()->addImage(s_menuTitle);
    CCSprite *title = CCSprite::createWithTexture(imageCache, CCRectMake(0, 0, 134, 34));
    title->setPosition(ccp(winSize.width/2, winSize.height - 60));
    addChild(title);

    CCMenuItemFont *menuTitle = CCMenuItemFont::create("Sound");
    menuTitle->setFontName("Arial");
    menuTitle->setFontSize(18);
    menuTitle->setEnabled(false);
    
    CCMenuItemFont::setFontName("Arial");
    CCMenuItemFont::setFontSize(26);
    CCMenuItemToggle *toggle = CCMenuItemToggle::createWithTarget(this, menu_selector(Options::setOptions), CCMenuItemFont::create("On"),CCMenuItemFont::create("Off"), NULL);
    
    int selectId = Config::sharedConfig()->getAudioState()? 0 : 1;
    toggle->setSelectedIndex(selectId);
    
    CCLabelBMFont *backLb = CCLabelBMFont::create("Go Back", s_font);
    CCMenuItemLabel *goBack = CCMenuItemLabel::create(backLb, this, menu_selector(Options::goBack));
    goBack->setScale(0.6);
    CCActionInterval *fadeIn = CCFadeTo::create(1, 80);
    CCActionInterval *fadeOut = CCFadeTo::create(1, 255);
    CCEaseSineInOut *ease1 = CCEaseSineInOut::create(fadeIn);
    CCEaseSineInOut *ease2 = CCEaseSineInOut::create(fadeOut);
    CCFiniteTimeAction *seq = CCSequence::create(ease1, ease2, NULL);
    // 这里也是,参数必须强转,否则NDK编译不过
    goBack->runAction(CCRepeatForever::create((CCActionInterval*)seq));
    
    CCMenu *menu = CCMenu::create( menuTitle, toggle, goBack, NULL);
    menu->alignItemsInColumns(2,1);
    addChild(menu);

    
    CCPoint pos =  goBack->getPosition();
    pos.y -= 50;
    goBack->setPosition(pos);
    
    
    return true;
}
Пример #4
0
// 主菜单Layer对象创建时初始化, 用来完成布局主菜单的功能。 包括背景图片、菜单、背景音乐加载等。
bool MainMenu::init()
{
	int remainder;  // 菜单顶部空白
	int divider;    // 菜单间空白
	int halfWidth;

	// 必须先执行基类的方法
	if(!CCLayer::init())
	{
		return false;
	}

	CCSize winSize = CCDirector::sharedDirector()->getWinSize();
	halfWidth = winSize.width / 2;

	// 添加背景图片,放在最底层
	CCSprite* background = CCSprite::create("background.png");
	background->setPosition(ccp(halfWidth, winSize.height / 2));
	addChild(background, 0);

	CCSprite* title = CCSprite::create("title.png");
	title->setAnchorPoint(ccp(0.5, 1));
	title->setScale(0.5);
	title->setPosition(ccp(halfWidth, winSize.height - 20));
	addChild(title, 10);

	// 添加菜单
	CCMenuItemFont* startGame = CCMenuItemFont::create("start", this, menu_selector(MainMenu::startGame));
	CCSize contentSize = startGame->getContentSize();
	divider = contentSize.height;  // 菜单间间隔单项高度的1/3
	remainder = (winSize.height - divider * MAIN_MENU_NUM) * 3 / 5;
	startGame->setAnchorPoint(ccp(0.5, 1));
	startGame->setPosition(ccp(halfWidth, winSize.height - remainder));
	startGame->setEnabled(false);

	CCMenuItemFont* pauseGame = CCMenuItemFont::create("pause", this, menu_selector(MainMenu::pauseGame));
	pauseGame->setAnchorPoint(ccp(0.5, 1));
	pauseGame->setPosition(ccp(halfWidth, winSize.height - remainder - divider));
	pauseGame->setEnabled(false);
	pauseGame->setVisible(true);

	CCMenuItemFont* resumeGame = CCMenuItemFont::create("resume", this, menu_selector(MainMenu::resumeGame));
	resumeGame->setAnchorPoint(ccp(0.5, 1));
	resumeGame->setPosition(ccp(halfWidth, winSize.height - remainder - divider));
	resumeGame->setEnabled(false);
	resumeGame->setVisible(false);

	CCMenuItemFont* setting = CCMenuItemFont::create("setting", this, menu_selector(MainMenu::setting));
	setting->setAnchorPoint(ccp(0.5, 1));
	setting->setPosition(ccp(halfWidth, winSize.height - remainder - 2 * divider));
	setting->setEnabled(false);

	CCMenuItemFont* quit = CCMenuItemFont::create("quit", this, menu_selector(MainMenu::quit));
	quit->setAnchorPoint(ccp(0.5, 1));
	quit->setPosition(ccp(halfWidth, winSize.height - remainder - 3 * divider));
	quit->setEnabled(false);

	CCMenu* mainMenu = CCMenu::create(startGame, pauseGame, resumeGame, setting, quit, NULL);
	mainMenu->setPosition(CCPointZero);
	addChild(mainMenu, 11, MAIN_MENU_TAG);

	// 对背景音乐进行预加载及设置, 默认背景音乐开启
	isSound = true;
	SimpleAudioEngine::sharedEngine()->preloadBackgroundMusic(std::string(CCFileUtils::sharedFileUtils()->fullPathForFilename("background.mp3")).c_str());
	SimpleAudioEngine::sharedEngine()->setBackgroundMusicVolume(0.5);
	SimpleAudioEngine::sharedEngine()->playBackgroundMusic(std::string(CCFileUtils::sharedFileUtils()->fullPathForFilename("background.mp3")).c_str(), true);

	return true;
}