版权声明:本文为博主原创文章,未经博主允许不得转载。 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);
}
}