cocos2d x3.3 Menu、MenuItem等相关

学习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);
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值