Пример #1
0
//  设置背景图片的方法
void BasicLayer::setBackgroundImage( const char* back_image_name ){
    
    CCSprite* sp = CCSprite::create( back_image_name );
    sp->setPosition( ccp( getWinSize().width / 2 , getWinSize().height / 2 ) );
    this->addChild( sp );
    
}
Пример #2
0
bool LoadingLayer::setUpdateView()
{
    bool isRet = false;
    do{
	CCSprite* loadingbackimg = CCSprite::create("gmbg/loadingbg.png");
	CC_BREAK_IF(!loadingbackimg);
	loadingbackimg->setPosition(ccp(getWinSize().width/2 + getWinOrigin().x, getWinSize().height/5 + getWinOrigin().y));
	this->addChild(loadingbackimg, 1);

	CCSprite* loadimg = CCSprite::create("gmbg/loading.png");
	CC_BREAK_IF(!loadimg);
	CCProgressTimer* pt = CCProgressTimer::create(loadimg);
	pt->setType(cocos2d::CCProgressTimerType(kCCProgressTimerTypeBar));
	pt->setMidpoint(ccp(0,0.5));
	pt->setBarChangeRate(ccp(1,0));
	float tex = getWinSize().width/2 + getWinOrigin().x;
	float tey = getWinSize().height/5 + getWinOrigin().y-5;
	pt->setPosition(ccp(tex, tey));
	pt->setPercentage(0);
	this->addChild(pt, 2, 1);
	CCProgressTo* to = CCProgressTo::create(5, 100);
	pt->runAction(CCRepeatForever::create(to));
	isRet = true;
	
    }while(0);
    return isRet;
}
Пример #3
0
bool LoadingLayer::setUpdateView(){
	bool isRet=false;
	do 
	{
	// 设置进度条的背景图片 我们把他放到屏幕下方的1/5处	
    CCSprite* loadbackimg=CCSprite::create("gmbg/lodingbg.png");
	CC_BREAK_IF(!loadbackimg);	
	loadbackimg->setPosition(ccp(getWinSize().width/2+getWinOrigin().x,getWinSize().height/5+getWinOrigin().y));
	this->addChild(loadbackimg,1);
	
	// 添加进度条
	CCSprite* loadimg=CCSprite::create("gmbg/longding.png");
	CC_BREAK_IF(!loadimg);	
	CCProgressTimer* pt = CCProgressTimer::create(loadimg);
	pt->setType(kCCProgressTimerTypeBar);// 设置成横向的
	//可以看作是按矩形显示效果的进度条类型
	pt->setMidpoint(ccp(0,0)); 
	//  用来设定进度条横向前进的方向从左向右或是从右向左
	pt->setBarChangeRate(ccp(1,0));
	//重新设置锚点
	float tex=getWinSize().width/2+getWinOrigin().x;
	float tey=getWinSize().height/5+getWinOrigin().y-5;
	pt->setPosition(ccp(tex,tey));
	pt->setPercentage(0);
	this->addChild(pt,2,1);

	isRet=true;
	} while (0);
	return isRet;
}
Пример #4
0
void AboutLayer::setupViews(){

    setBackgroundImage( "loading.png" );
    
    //  加入title
    CCSprite* title = CCSprite::create( "menuTitle.png",CCRectMake(0, 34, 130, 38) );
    
    title->setAnchorPoint( ccp(0.5, 1) );
    title->setPosition( ccp( getWinSize().width / 2 ,getWinSize().height -20 ) );
    this->addChild( title );
    //  加入文字说明
    
    CCLabelBMFont* pDes = CCLabelBMFont::create( "This Game is recoded by longlingxiu ", "arial-14.fnt" );
    
    pDes->setPosition( ccp(getWinSize().width / 2, getWinSize().height / 2) );
    
    this ->addChild(pDes);
    
    
    
    CCLabelBMFont* fontOfBack = CCLabelBMFont::create("Go Back", "arial-14.fnt" );
    
    fontOfBack->setScale(1.5f);
    
    CCMenuItemLabel* backLabel = CCMenuItemLabel::create(fontOfBack, this, menu_selector(AboutLayer::back_callback));
    backLabel->setAnchorPoint( ccp( 0.5, 0 ) );
    backLabel->setPosition( ccp( getWinSize().width / 2, 30) );
    
    CCMenu* menu = CCMenu::create( backLabel, NULL );;
    menu->setPosition( CCPointZero );
    
    this->addChild( menu );
    
}
Пример #5
0
void EnemyManager::setupViews(){
    
    //  初始化一个敌机
    Monster monster = { monster1 };
    
    EnemyModel* enemyModel = EnemyModel::getEnemey( monster, ccp( getWinSize().width /2 , getWinSize().height * .75) );
    
    enemyArray->addObject( enemyModel );
    
    this->addChild(enemyModel,1);
    enemyModel->setPosition( ccp( getWinSize().width /2 , getWinSize().height * .75) );
    
}
Пример #6
0
//  对控件以及布景 进行初始化
void OptionLayer::setupViews(){
    
    //  加入背景图片
    
    setBackgroundImage( "loading.png" );
    
    //  加入menutitle
    CCSprite* title = CCSprite::create( "menuTitle.png",CCRectMake(0, 0, 133, 36) );
    
    title->setAnchorPoint( ccp(0.5, 1) );
    title->setPosition( ccp( getWinSize().width / 2 ,getWinSize().height -20 ) );
    this->addChild( title );
    
    //  加入menu-- 既是创建CCMenuItemToggle
    CCMenuItemToggle* music_trigger = CCMenuItemToggle::createWithTarget(this, menu_selector(OptionLayer::music_trigger_callback), CCMenuItemFont::create( "Music : On" ),CCMenuItemFont::create("Music : Off"),NULL);
    
    music_trigger->setPosition( ccp( getWinSize().width / 2 ,getWinSize().height / 2 ) );
    //  根据背景音乐播放与否来显示相关的文字选项
    
    if( SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying() )
    {
              
        music_trigger->setSelectedIndex( 1 );
        
    }
    else
    {
        music_trigger->setSelectedIndex( 0 );
        
    }
    
    //  创建后退的CCMenuItem
    CCLabelBMFont* fontOfBack = CCLabelBMFont::create("Go Back", "arial-14.fnt" );
    
    fontOfBack->setScale(1.5f);
    
    CCMenuItemLabel* backLabel = CCMenuItemLabel::create(fontOfBack, this, menu_selector(OptionLayer::back_callback));
    backLabel->setAnchorPoint( ccp( 0.5, 0 ) );
    backLabel->setPosition( ccp( getWinSize().width / 2, 30) );
    
    
    CCMenu* menu = CCMenu::create( music_trigger,backLabel,NULL);
    
    menu ->setPosition( CCPointZero );
//    menu->setPosition( ccp( getWinSize().width / 2, getWinSize().height /  2) );
    
    this->addChild( menu );
}
Пример #7
0
bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLView::create("My Game");
        director->setOpenGLView(glview);
    }

    director->setContentScaleFactor(1024.0 / director->getWinSize().width);
    
    // turn on display FPS
    director->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object
    auto scene = GameScene::scene();

    // run
    director->runWithScene(scene);

    return true;
}
Пример #8
0
bool DialogLayer::init()
{
    bool bRet = false;
    
    do {

		CC_BREAK_IF(!CCLayerColor::initWithColor(ccc4(0, 0, 0, 125)));
		
		auto director = Director::getInstance();
		auto size = director->getWinSize();
		CCSprite * bg = CCSprite::create("MsgBox/message_box.png");
		bg->setPosition(size.width / 2, size.height / 2);
        this->addChild(bg);

        onInitDialog();
        initMenu();
		



		//onInitDialog();
		//initMenu();

        bRet = true;
    } while (0);
    
    return bRet;
}
Пример #9
0
void StartScene::itemArrange()
{
	auto director = Director::getInstance();
	auto winSize = director->getWinSize();

	// 背景の作成
	auto background = Sprite::create("Title.png");
	background->setPosition(Vec2(winSize.width / 2, winSize.height / 2));
	this->addChild(background);

	// スタートロゴの作成
	auto startLogo = Sprite::create("start_logo.png");
	startLogo->setPosition(Vec2(winSize.width / 2, START_BUTTON_POS_Y));
	this->addChild(startLogo);
	// 点滅アクション
	auto blink = Sequence::create(FadeOut::create(1.0), FadeIn::create(1.0), NULL);
	startLogo->runAction(RepeatForever::create(blink));

	// ルール画面の作成
	auto rulescene = RuleScene::create();
	this->setRuleScene(rulescene);

	// ランク画面の作成
	auto rankscene = RankScene::create();
	this->setRankScene(rankscene);

	// ルールボタンの作成
	auto ruleButton = MenuItemImage::create("rule_button.png", "rule_button_pressed.png", [this](Ref *sender){
		if(_ruleScene->getAtmain() && _rankScene->getAtmain()){// メイン画面が表示されていれば
			// ルール画面を表示する
			this->addChild(_ruleScene, 7);

			// メイン画面でないフラグを立てる
			_ruleScene->setAtmain(false);
		}
		//auto transition = TransitionPageTurn::create(0.5, scene, true);
		//Director::getInstance()->replaceScene(transition);
	});

	// ランキングボタンの作成
	auto rankButton = MenuItemImage::create("rank_button_home.png", "rank_button_home_pressed.png",
			[this](Ref* ref){
		if(_ruleScene->getAtmain() && _rankScene->getAtmain()){// メイン画面が表示されていれば
			// ランク画面を表示する
			this->addChild(_rankScene, 7);

			// メイン画面でないフラグを立てる
			_rankScene->setAtmain(false);
		}
		//auto transition = TransitionPageTurn::create(0.5, scene, true);
		//Director::getInstance()->replaceScene(transition);
	});

	// ボタンメニューの作成
	auto menu = Menu::create(ruleButton, rankButton, nullptr);
	this->addChild(menu);
	menu->setPosition(winSize.width / 2.0, MENU_BUTTON_POS_Y);
	menu->alignItemsHorizontallyWithPadding(BUTTON_INTERVAL);

}
Пример #10
0
bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    auto director = Director::getInstance();

    auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLView::create("My Game");
        director->setOpenGLView(glview);
    }
    
    // turn on display FPS
    director->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);

    Size winSize = director->getWinSize();
    
    CCLOG("%f %f", winSize.width, winSize.height);
    
    // run
    director->runWithScene(GameScene::create());

    return true;
}
Пример #11
0
 void DefenderGameLayer::detectd(float tim){
	 WeaponSprite* pweapon=(WeaponSprite*) this->getChildByTag(2);
	 if(pweapon->getRunBulletsPool()){
		 CCArray* tem=CCArray::create();
		 for(int i=0;i<pweapon->getRunBulletsPool()->count();i++){
			 BulletsSprite* pbu=(BulletsSprite*) pweapon->getRunBulletsPool()->objectAtIndex(i);
			 if (pbu->boundingBox().getMinX()>=getWinSize().width||pbu->boundingBox().getMinY()<0||pbu->boundingBox().getMinY()>=getWinSize().height){				
				 pweapon->recoverBullet(pbu);
				 tem->addObject(pbu);
			 }else {
				bool isp= this->monsterSystem->collisionDetection(pbu);
					if(isp){
						pweapon->recoverBullet(pbu);
						tem->addObject(pbu);
					}else {
						 pbu->mymove();// 调用移动方法
					}

				
			 }
		 }
		 for(int j=0;j<tem->count();j++){
			 pweapon->getRunBulletsPool()->removeObject(tem->objectAtIndex(j),false);
		 }
		 tem->removeAllObjects();
	 }
	 
 }
Пример #12
0
void City_layer::calculateRayByLocationInView(Ray* ray, const Vec2& location)
{
    auto dir = Director::getInstance();
    auto view = dir->getWinSize();

    //auto mat = dir->getMatrix(MATRIX_STACK_TYPE::MATRIX_STACK_PROJECTION);
    //auto mat=pCamera->getProjectionMatrix();
    auto mat=pCamera->getViewProjectionMatrix();

    
    Vec3 src = Vec3(location.x, location.y, -1);
    Vec3 nearPoint;
    unproject(mat, &view, &src, &nearPoint);
    
    src = Vec3(location.x, location.y, 1);
    Vec3 farPoint;
    unproject(mat, &view, &src, &farPoint);
    
    Vec3 direction;
    Vec3::subtract(farPoint, nearPoint, &direction);
    direction.normalize();
    
    ray->_origin = nearPoint;
    ray->_direction = direction;
}
Пример #13
0
bool ShaderRetroEffect::init()
{
    if( ShaderTestDemo::init() ) {
        
        auto fragStr = FileUtils::getInstance()->getStringFromFile(FileUtils::getInstance()->fullPathForFilename("Shaders/example_HorizontalColor.fsh"));
        GLchar * fragSource = (GLchar*)fragStr.c_str();

        auto p = GLProgram::createWithByteArrays(ccPositionTextureColor_noMVP_vert, fragSource);

        auto director = Director::getInstance();
        auto s = director->getWinSize();

        _label = Label::createWithBMFont("fonts/west_england-64.fnt","RETRO EFFECT");
        _label->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
        _label->setGLProgram(p);

        _label->setPosition(Vec2(s.width/2,s.height/2));

        addChild(_label);

        scheduleUpdate();
        return true;
    }

    return false;
}
Пример #14
0
void MainScene::openCard(HighLow highLow){
	auto director = Director::getInstance();
	auto size = director->getWinSize();
	// カード(右)を表示する
	int cardNum = rand() % 13 + 1;
	std::string filename = StringUtils::format("trump/c%02d.png", cardNum);
	_cardRight->setTexture(filename);
	// メニューの表示消す
	_selectMenu->setVisible(false);

	std::string status = "";
	if (highLow == HighLow::HIGH && this->getCardNum() < cardNum || 
		highLow == HighLow::LOW && this->getCardNum() > cardNum) {
		status = "WIN!!";
	}
	else{
		status = "LOSE...";
	}
	// 勝敗を表示
	_titleLabel->setString(status);
	// カード番号保存
	this->setCardNum(cardNum);

	//アニメーションを作成
	_cardRight->runAction(Sequence::create(DelayTime::create(2.0),
		CallFunc::create([this]{
		this->changeCard();
	}), NULL));


};
Пример #15
0
bool MainScene::init()
{
	if (!Layer::init()){
		return false;
	}
	//乱数初期化
	srand((unsigned int)time(NULL));
	
	// directorを取り出す
	auto director = Director::getInstance();
	// 画面サイズを取り出す
	auto size = director->getWinSize();

	// カード(左)を表示する
	int cardNum = rand() % 13 + 1;
	this->setCardNum(cardNum);
	std::string filename = StringUtils::format("trump/c%02d.png", cardNum);
	auto cardLeft = Sprite::create(filename);
	cardLeft->setPosition(Vec2(size.width / 3.0, size.height / 2.0));
	this->setCardLeft(cardLeft);
	this->addChild(cardLeft);

	// カード(右)を表示する
	auto cardRight = Sprite::create("trump/z01.png");
	cardRight->setPosition(Vec2(size.width / 3.0 * 2.0, size.height / 2.0));
	this->setCardRight(cardRight);
	this->addChild(cardRight);

	auto listener = EventListenerTouchOneByOne::create();
	listener->onTouchBegan = [](Touch* touch, Event* event){
		return true;
	};

	// タイトルラベルの表示
	auto titleLabel = Label::createWithSystemFont("High and Low", "Market Felt", 48);
	this->setTitleLabel(titleLabel);
	titleLabel->setPosition(Vec2(size.width / 2.0, size.height / 5.0 * 4.0));
	this->addChild(titleLabel);

	// メニューの表示
	auto highButtonLabel = LabelTTF::create("High", "Market Felt", 48);
	auto highButton = MenuItemLabel::create(highButtonLabel, [this](Ref* ref){
		this->openCard(HighLow::HIGH);
	});
	auto lowButtonLabel = LabelTTF::create("Low", "Market Felt", 48);
	auto lowButton = MenuItemLabel::create(lowButtonLabel, [this](Ref* ref){
		this->openCard(HighLow::LOW);
	});

	auto menu = Menu::create(highButton, lowButton, NULL);
	menu->alignItemsHorizontallyWithPadding(60);
	menu->setPosition(Vec2(size.width/2.0, size.height/ 5.0));
	this->setSelectMenu(menu);
	this->addChild(menu);

	this->scheduleUpdate();
	
	return true;
}
Пример #16
0
void InfoMapLayer::setFonts(const std::string & fontsFilePath)
{
	mFonts = fontsFilePath;
	auto director = Director::getInstance();
	width = director->getWinSize().width;
	height = director->getWinSize().height;

	mUnitInfoLabel->setString("");
	mUnitInfoLabel = Label::createWithTTF("", mFonts, 16);
	mUnitInfoLabel->setPosition(width / 2, height / 2);
	mUnitInfoLabel->setDimensions(134, 108);//
	mUnitInfoLabel->setAlignment(TextHAlignment::CENTER, TextVAlignment::CENTER);
	addChild(mUnitInfoLabel, 2);

	//unitname
	mUnitNameLabel->setString("");
	mUnitNameLabel = Label::createWithTTF("", mFonts, 20);
	mUnitNameLabel->setPosition(width / 2, height / 2 + 70);
	addChild(mUnitNameLabel, 3);

	//
	mTechNameLabel->setString("");
	mTechNameLabel = Label::createWithTTF("", mFonts, 20);
	mTechNameLabel->setPosition(width / 2, height / 2 + 70);
	addChild(mTechNameLabel, 7);
	//
	mTechIntroLabel->setString("");
	mTechIntroLabel = Label::createWithTTF("", mFonts, 16);
	mTechIntroLabel->setPosition(width / 2, height / 2);
	mTechIntroLabel->setDimensions(134, 108);//
	mTechIntroLabel->setAlignment(TextHAlignment::CENTER, TextVAlignment::CENTER);
	addChild(mTechIntroLabel, 8);
	//
	mTechTurnLeft->setString("");
	mTechTurnLeft = Label::createWithTTF("", mFonts, 20);
	mTechTurnLeft->setPosition(width / 2, height / 2 - 70);
	addChild(mTechTurnLeft, 9);
	//
	mTechNameLabel->setVisible(false);
	mTechIntroLabel->setVisible(false);
	mTechTurnLeft->setVisible(false);
	mUnitNameLabel->setVisible(false);
	mUnitInfoLabel->setVisible(false);

}
Пример #17
0
CCSize CCDirector::getWinSizeInPixels()
{
	CCSize s = getWinSize();

	s.width *= CC_CONTENT_SCALE_FACTOR();
	s.height *= CC_CONTENT_SCALE_FACTOR();

	return s;
}
Пример #18
0
void initWinSiz()
{
    auto director = cocos2d::Director::getInstance();
    winSiz = director->getWinSize();
    winMidX = winSiz.width/2;
    winMidY = winSiz.height/2;
    screenSiz = director->getOpenGLView()->getFrameSize();
    db = UserDefault::getInstance();
    //audioEngine->preloadBackgroundMusic("BGMusic01.mp3");
}
bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if(!glview) {
        glview = GLView::create("My Game");
        director->setOpenGLView(glview);
    }
    
    // turn on display FPS
    director->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);
    
    
    AppDelegate::SCREEN_SCALE_FACTOR = director->getVisibleSize().width / 960.0f;
    AppDelegate::SCREEN_WIDTH  = director->getWinSizeInPixels().width;
    AppDelegate::SCREEN_HEIGHT = director->getWinSize().height;
    
    
    std::vector<std::string> searchPath;
    
    if (AppDelegate::SCREEN_HEIGHT > 768)
    {
        searchPath.push_back("HDR");
        CCLOG("Using HDR Directory");
        //pDirector->setContentScaleFactor(MAX(AppDelegate::SCREEN_WIDTH/2048.0f, AppDelegate::SCREEN_HEIGHT/1536.0f));
    }
    else if (AppDelegate::SCREEN_HEIGHT > 320)
    {
        searchPath.push_back("HD");
        //pDirector->setContentScaleFactor(MIN(AppDelegate::SCREEN_WIDTH/1024.0f, AppDelegate::SCREEN_HEIGHT/768.0f));
        CCLOG("Using HD Directory with scaleFactor = %f", director->getContentScaleFactor());
        //CCEGLView::sharedOpenGLView()->setDesignResolutionSize(AppDelegate::SCREEN_WIDTH, AppDelegate::SCREEN_HEIGHT, kResolutionNoBorder);
    }
    else
    {
        searchPath.push_back("SD");
        CCLOG("Using SD Directory");
        //pDirector->setContentScaleFactor(AppDelegate::SCREEN_HEIGHT/320.0f);
    }
    
    FileUtils::getInstance()->setSearchPaths(searchPath);
    
    // create a scene. it's an autorelease object
    auto *pScene = SplashScene::scene();
    //auto *pScene = HelloWorld::createScene();
    
    // run
    director->runWithScene(pScene);
    
    EziSocialObject::sharedObject()->setAutoCheckIncomingRequestsOnAppLaunch(false);
    return true;
}
Пример #20
0
bool AppDelegate::applicationDidFinishLaunching() {
	auto designSize = Size(640, 960);

	// initialize director
	auto director = Director::getInstance();
	auto glview = director->getOpenGLView();
	if(!glview) {
		glview = GLView::createWithRect("My Game", Rect(0, 0, 640, 960));
		director->setOpenGLView(glview);
		glview->setFrameSize(640, 960);
		glview->setFrameZoomFactor(0.8);
	}

	director->setOpenGLView(glview);
	// turn on display FPS
	director->setDisplayStats(true);

	// set FPS. the default value is 1.0/60 if you don't call this
	director->setAnimationInterval(1.0 / 60);

	glview->setDesignResolutionSize(designSize.width, designSize.height, ResolutionPolicy::FIXED_WIDTH);


	auto wisize = director->getWinSize();

	director->setContentScaleFactor(1136/designSize.height);

	// create a scene. it's an autorelease object
	//auto scene = View::Hall::createScene();
	//auto scene = View::GameLayer::creatScene();
	// run

	auto scene = View::LoginBar::createScene();
	
	//View::_table.init();
	//auto scene = View::Table::creatScene();

	//std::vector<View::PlayerInfo> pInfo;
	//View::PlayerInfo pi;
	//pi.chairid = 0;
	//pi.allchips = 1000;
	//pi.nickname = "xiaocelao";
	//for (int i = 0; i < 3; ++i)
	//{
	//	pInfo.push_back(pi);
	//}
	//View::_table.onPlayerEnter(pInfo);

	//auto scene = View::GameLayer::creatScene();

	Director::getInstance()->runWithScene(scene); 

	return true;
}
Пример #21
0
void OptionLayer::setViews()
{
	setBackGroundImage("loading.png");	

	CCSprite *title = CCSprite::create("menuTitle.png",CCRectMake(0,0,135,35));
	title->setAnchorPoint(ccp(0.5,1));
	title->setPosition(ccp(getWinSize().width/2,getWinSize().height-20));

	this->addChild(title);

	CCMenuItemToggle *music_trigger = CCMenuItemToggle::createWithTarget(this,menu_selector(OptionLayer::music_triggerCallback),
			CCMenuItemFont::create("Music : On"),CCMenuItemFont::create("Music : Off"),NULL);
	
	music_trigger->setPosition(ccp(getWinSize().width/2,getWinSize().height/2));


	if(SimpleAudioEngine::sharedEngine()->isBackgroundMusicPlaying())
	{
		music_trigger->setSelectedIndex(1);
	}
	else
	{
		music_trigger->setSelectedIndex(0);
	}

	//menu->setPosition(ccp(getWinSize().width/2,getWinSize().height/2));

	CCLabelBMFont *back = CCLabelBMFont::create("back","arial-14.fnt");

	back->setScale(1.25f);
	CCMenuItemLabel *backLable =  CCMenuItemLabel::create(back,this,menu_selector(OptionLayer::backCallback));
	backLable->setAnchorPoint(ccp(0.5,1));
	backLable->setPosition(ccp(getWinSize().width/2,50));

	CCMenu *menu = CCMenu::create(music_trigger,backLable,NULL);
	menu->setPosition(CCPointZero);

	this->addChild(menu);
}
Пример #22
0
bool TitleScene::init(){
    if(!Layer::init()){
        return false;
    }
    
    auto director=Director::getInstance();
    auto winSize=director->getWinSize();
    
    //背景の追加
    auto background=Sprite::create("title_background.png");
    background->setPosition(Vec2(winSize.width/2.0, winSize.height/2.0));
    this->addChild(background);
    
    //ロゴの追加
    auto logo=Sprite::create("title_logo.png");
    logo->setPosition(Vec2(winSize.width/2.0, winSize.height-150));
    this->addChild(logo);
    
    //Touch to Startの追加
    auto touchToStart=Sprite::create("title_start.png");
    touchToStart->setPosition(Vec2(winSize.width/2.0,90));
    //点滅させるアクションの定義
    auto blink=Sequence::create(FadeTo::create(0.5, 127),
                                FadeTo::create(0.5, 255),
                                NULL);
    touchToStart->runAction(RepeatForever::create(blink));
    this->addChild(touchToStart);
    
    //画面をタッチしたときにメイン画面へ遷移
    auto listener=EventListenerTouchOneByOne::create();
    listener->onTouchBegan=[this](Touch* touch,Event* event){
        CocosDenshion::SimpleAudioEngine::getInstance()->playEffect("decide.mp3");
        //何度も押せないように一度押したらアクションを無効化する
        this->getEventDispatcher()->removeAllEventListeners();
        //0.5秒待ってからCallFuncを呼ぶ
        auto delay=DelayTime::create(0.5);
        //ゲームを始めるアクション
        auto startGame=CallFunc::create([]{
            auto scene=MainScene::createScene();
            auto transition=TransitionPageTurn::create(0.5, scene, true);
            Director::getInstance()->replaceScene(transition);
        });
        this->runAction(Sequence::create(delay,startGame, NULL));
        
        return true;
    };
    this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
    
    return true;
}
Пример #23
0
ButtonControlLayer::ButtonControlLayer(Level* level)
{
    Layer::init();
    
    _level = level;
    _selectedItem = nullptr;
    _selectedWithCamera = nullptr;
    memset(_states, 0, sizeof(ButtonState) * 4);
    
    auto director = cocos2d::Director::getInstance();
    auto winSize = director->getWinSize();
    cocos2d::Rect screenBounds(director->getVisibleOrigin(), director->getVisibleSize());
    
    auto southItem = cocos2d::MenuItemSprite::create(cocos2d::Sprite::createWithSpriteFrameName("ui-button-control.png"), cocos2d::Sprite::createWithSpriteFrameName("ui-button-control-on.png"));
    southItem->setScale(1, -1);
    southItem->setTag(static_cast<int>(Direction::SOUTH));
    southItem->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
    southItem->setPosition(cocos2d::Vec2(screenBounds.origin.x + 61.5f, screenBounds.origin.y + 94.5f));
    addChild(southItem);
    
    auto westItem = cocos2d::MenuItemSprite::create(cocos2d::Sprite::createWithSpriteFrameName("ui-button-control.png"), cocos2d::Sprite::createWithSpriteFrameName("ui-button-control-on.png"));
    westItem->setTag(static_cast<int>(Direction::WEST));
    westItem->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
    westItem->setPosition(cocos2d::Vec2(screenBounds.origin.x + 61.5f, screenBounds.origin.y + 202.5f));
    addChild(westItem);
    
    auto northItem = cocos2d::MenuItemSprite::create(cocos2d::Sprite::createWithSpriteFrameName("ui-button-control.png"), cocos2d::Sprite::createWithSpriteFrameName("ui-button-control-on.png"));
    northItem->setScale(-1, 1);
    northItem->setTag(static_cast<int>(Direction::NORTH));
    northItem->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
    northItem->setPosition(cocos2d::Vec2(screenBounds.origin.x + screenBounds.size.width - 61.5f, screenBounds.origin.y + 202.5f));
    addChild(northItem);
    
    auto eastItem = cocos2d::MenuItemSprite::create(cocos2d::Sprite::createWithSpriteFrameName("ui-button-control.png"), cocos2d::Sprite::createWithSpriteFrameName("ui-button-control-on.png"));
    eastItem->setScale(-1, -1);
    eastItem->setTag(static_cast<int>(Direction::EAST));
    eastItem->setAnchorPoint(cocos2d::Vec2(0.5f, 0.5f));
    eastItem->setPosition(cocos2d::Vec2(screenBounds.origin.x + screenBounds.size.width - 61.5f, screenBounds.origin.y + 94.5f));
    addChild(eastItem);
    
    auto touchListener = cocos2d::EventListenerTouchOneByOne::create();
    touchListener->setSwallowTouches(true);
    touchListener->onTouchBegan = CC_CALLBACK_2(ButtonControlLayer::onTouchBegan, this);
    touchListener->onTouchMoved = CC_CALLBACK_2(ButtonControlLayer::onTouchMoved, this);
    touchListener->onTouchEnded = CC_CALLBACK_2(ButtonControlLayer::onTouchEnded, this);
    touchListener->onTouchCancelled = CC_CALLBACK_2(ButtonControlLayer::onTouchEnded, this);
    _eventDispatcher->addEventListenerWithSceneGraphPriority(touchListener, this);
}
Пример #24
0
bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();

    Size winSize = director->getWinSize();
    if(!glview) {
        //glview = GLView::createWithRect("My Game", Rect(0, 0, winSize.width, winSize.height), 1);
        glview = GLView::create("My Game");
        //glview->setFrameSize(540, 960);
        director->setOpenGLView(glview);
    }

    //director->setContentScaleFactor(MIN(birdResource.size.height/designResolutionSize.height, birdResource.size.width/designResolutionSize.width));
    //director->setContentScaleFactor(birdResource.size.height/designResolutionSize.height);
    //director->setContentScaleFactor(birdResource.size.width/designResolutionSize.width);
    //glview->setDesignResolutionSize(designResolutionSize.width, designResolutionSize.height, ResolutionPolicy::SHOW_ALL);
    //director->setContentScaleFactor(1.0);
    float scale = director->getContentScaleFactor();
    LOGD("scale is %f", scale);



    this->setResourceSearchResolution();

    // turn on display FPS
    director->setDisplayStats(true);

    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);

    // create a scene. it's an autorelease object
    //auto scene = HelloWorld::createScene();

    auto scene = Scene::create();
    auto layer = new GameController();
    layer->autorelease();
    layer->addConsoleAutoGame();

    scene->addChild(layer);

    //auto scene = LoadingScene::create();

    // run
    director->runWithScene(scene);

    return true;
}
Пример #25
0
    Rect Helper::convertBoundingBoxToScreen(Node* node)
    {
        auto director = Director::getInstance();
        auto glView = director->getOpenGLView();
        auto frameSize = glView->getFrameSize();

        auto winSize = director->getWinSize();
        auto leftBottom = node->convertToWorldSpace(Point::ZERO);

        auto contentSize = node->getContentSize();
        auto rightTop = node->convertToWorldSpace(Point(contentSize.width, contentSize.height));

        auto uiLeft = frameSize.width / 2 + (leftBottom.x - winSize.width / 2 ) * glView->getScaleX();
        auto uiTop = frameSize.height /2 - (rightTop.y - winSize.height / 2) * glView->getScaleY();

        return Rect(uiLeft,uiTop,
                    (rightTop.x - leftBottom.x) * glView->getScaleX(),
                    (rightTop.y - leftBottom.y) * glView->getScaleY());
    }
Пример #26
0
            void WebViewImpl::draw(cocos2d::Renderer *renderer, cocos2d::Mat4 const &transform, uint32_t flags) {
                if (flags & cocos2d::Node::FLAGS_TRANSFORM_DIRTY) {
                    auto directorInstance = cocos2d::Director::getInstance();
                    auto glView = directorInstance->getOpenGLView();
                    auto frameSize = glView->getFrameSize();

                    auto winSize = directorInstance->getWinSize();

                    auto leftBottom = this->_webView->convertToWorldSpace(cocos2d::Point::ZERO);
                    auto rightTop = this->_webView->convertToWorldSpace(cocos2d::Point(this->_webView->getContentSize().width,this->_webView->getContentSize().height));

                    auto uiLeft = frameSize.width / 2 + (leftBottom.x - winSize.width / 2 ) * glView->getScaleX();
                    auto uiTop = frameSize.height /2 - (rightTop.y - winSize.height / 2) * glView->getScaleY();

                    setWebViewRectJNI(_viewTag,uiLeft,uiTop,
                                      (rightTop.x - leftBottom.x) * glView->getScaleX(),
                                      (rightTop.y - leftBottom.y) * glView->getScaleY());
                }
            }
Пример #27
0
void EditBoxImplAndroid::createNativeControl(const Rect& frame)
{
    auto director = cocos2d::Director::getInstance();
    auto glView = director->getOpenGLView();
    auto frameSize = glView->getFrameSize();
    
    auto winSize = director->getWinSize();
    auto leftBottom = _editBox->convertToWorldSpace(Point::ZERO);
    
    auto contentSize = frame.size;
    auto rightTop = _editBox->convertToWorldSpace(Point(contentSize.width, contentSize.height));
    
    auto uiLeft = frameSize.width / 2 + (leftBottom.x - winSize.width / 2 ) * glView->getScaleX();
    auto uiTop = frameSize.height /2 - (rightTop.y - winSize.height / 2) * glView->getScaleY();
    auto uiWidth = (rightTop.x - leftBottom.x) * glView->getScaleX();
    auto uiHeight = (rightTop.y - leftBottom.y) * glView->getScaleY();
    LOGD("scaleX = %f", glView->getScaleX());
    _editBoxIndex = addEditBoxJNI(uiLeft, uiTop, uiWidth, uiHeight, glView->getScaleX());
    s_allEditBoxes[_editBoxIndex] = this;
}
Пример #28
0
//  移动所有的子弹
void HeroBulletMananger::moveAllBullets( float t ){

    CCSize size = getWinSize();
    
    CCObject* obj = NULL;
    CCObject* oo = NULL;
    CCARRAY_FOREACH( bulletsArray, obj ){
    
        CCSprite* sp = ( CCSprite*)obj;
        
        sp->setPositionY( sp->getPositionY() + 10 );
        
        //  如果出边界则移除子弹,否则进行判断
        if( sp->getPositionY() > OFFSIDE_HEIGHT){
        
            mBulletsBatchNode->removeChild( sp , true );
            
            bulletsArray->removeObject( sp );
        }else{
        
            GamingLayer* father  = (GamingLayer*)this->getParent();
            CCArray* eArr = father->mEnemyManager->getEnemyArray();
            
            
            CCARRAY_FOREACH(eArr, oo ){
               
                
                EnemyModel* model = (EnemyModel*)oo;
                
                
                
                if( sp->boundingBox().containsPoint( model->getPosition())){
                   
                    Effects::sharedEffects()->boom( this->getParent(), model->getPosition() );
                    
                    
                }
                
            }
           
        }
Пример #29
0
// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }
    auto director = Director::getInstance();
    _winSize = director->getWinSize();
 
    _ground = GroundLayer::create();
    this->addChild(_ground, 0);
    
    auto interface = InterfaceLayer::create();
    interface->setDelegate(_ground);
    
    this->addChild(interface, 1);

    return true;
}
Пример #30
0
bool AppDelegate::applicationDidFinishLaunching() {
    // initialize director
    auto director = Director::getInstance();
    auto glview = director->getOpenGLView();
    if(!glview) {
        int height, width;
        height = 640;
        width = height*(960.0/640.0);
        
        glview = GLView::createWithRect("TankMultiplayer", Rect(0, 0, 960, 640));
        
        director->setOpenGLView(glview);
    }
    glview->setDesignResolutionSize(960, 640, ResolutionPolicy::FIXED_HEIGHT);
    log("%f, scale", director->getContentScaleFactor());
    log("%f, scale2", director->getWinSize().width/ director->getOpenGLView()->getFrameSize().width  );
    // turn on display FPS
    director->setDisplayStats(true);
    
    // set FPS. the default value is 1.0/60 if you don't call this
    director->setAnimationInterval(1.0 / 60);
    
    g_gameConfig.lazyInit();
    
    FileUtils::getInstance()->addSearchPath("sfx");
    FileUtils::getInstance()->addSearchPath("particles");
    FileUtils::getInstance()->addSearchPath("fonts");

    
    // create a scene. it's an autorelease object
      auto scene = GameScene::createScene();
   //auto scene = MainScreenScene::createScene();
      //auto scene = TestTBMP::createScene("345678");
    //auto scene = WagonSelect::createScene(FIRST_TURN);

    // run
    director->runWithScene(scene);
    
    return true;
}