cocos2d x3.3 Menu、MenuItem等相关

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Cpp2088671660/article/details/40191303

学习cocos2dx,今天学到有关项目选项的类微笑

#include "HelloWorldScene.h"


USING_NS_CC;


Scene* HelloWorld::createScene()
{
    // 'scene' is an autorelease object
    auto scene = Scene::create();
	
    // 'layer' is an autorelease object
    auto layer = HelloWorld::create();


    // add layer as a child to scene
    scene->addChild(layer);


    // return the scene
    return scene;
}


// on "init" you need to initialize your instance
bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !Layer::init() )
    {
        return false;
    }


	auto visibleSize = Director::getInstance()->getWinSize();
	auto origin = Director::getInstance()->getVisibleOrigin();
	auto bj = CCSprite::create("HelloWorld.png");
	bj->setPosition(Vec2((origin.x + visibleSize.width) * 0.5, (origin.y + visibleSize.height) * 0.5));
	this->addChild(bj, 1, "背景1");


	auto MenuItemIM = Menu::create();


	auto close = MenuItemImage::create("close.png", "PPWebClose.png", CC_CALLBACK_1(HelloWorld::Menu_Instace, this));
	MenuItemIM->addChild(close);


	auto MenuFonts = MenuItemFont::create("button1", CC_CALLBACK_1(HelloWorld::Menu_Fonts, this));
	MenuItemIM->addChild(MenuFonts);


	auto sp1 = CCSprite::create("jtbq_040.png");
	auto sp2 = CCSprite::create("jtbq_043.png");
	auto MenuT = MenuItemSprite::create(sp1, sp2, CC_CALLBACK_1(HelloWorld::Menu_CCSprite, this));
	MenuItemIM->addChild(MenuT);


	auto MenuToggle = MenuItemToggle::createWithCallback(CC_CALLBACK_1(HelloWorld::Menu_Toggle, this),
		MenuItemFont::create("on"),
		MenuItemFont::create("off"), nullptr);
	MenuItemIM->addChild(MenuToggle);
	MenuItemIM->alignItemsVertically();


	MenuItemIM->setPosition(origin + Vec2(visibleSize) - MenuItemIM->getContentSize() / 2);
	this->addChild(MenuItemIM, 1);


    return true;
}




void HelloWorld::Menu_Instace(Ref * sender)
{
	Director::getInstance()->end();
}


void HelloWorld::Menu_Fonts(Ref * sender)
{
	log("++");
}


void HelloWorld::Menu_CCSprite(Ref * sender)
{
	CCSprite * bj = dynamic_cast<CCSprite *> (this->getChildByName("背景1"));
	if (background != 40002)
	{
		bj->setTexture(TextureCache::getInstance()->addImage("40002.png"));//图片为40002
		setBackGround(40002);
		log("%d", 40002);
	}
}


void HelloWorld::setBackGround(int n)
{
	background = n;
}


void HelloWorld::Menu_Toggle(Ref * sender)
{
	CCSprite * bj = dynamic_cast<CCSprite *> (this->getChildByName("背景1"));
	if (background != 40001)
	{
		bj->setTexture(TextureCache::getInstance()->addImage("40001.png"));//图片为40002
		setBackGround(40001);
		log("%d", 40001);
	}
}


猜你喜欢

转载自blog.csdn.net/Cpp2088671660/article/details/40191303