cocos2d-x实战项目【飞机大战】-- 定时器、合图、菜单按钮

1、定时器

//定时器  scheduleOnce(带一个参数的回调函数、延迟时间(几秒后执行一次)、键(用于删除的标识))
//CC_CALLBACK_1(调用的函数, 对象) 
this->scheduleOnce(CC_CALLBACK_1(CGameLogo::chanceScene,this), 0.5, "chanceScene");

2、创建合图精灵

//精灵帧缓存池(单例)
SpriteFrameCache* pCache = SpriteFrameCache::getInstance();  
//从合图plist文件路径中添加精灵帧
pCache->addSpriteFramesWithFile("Image/GameMenu.plist");

//法1:通过精灵帧名字创建背景图
Sprite* pBg = Sprite::createWithSpriteFrameName("Background.png");

//法2:通过精灵帧创建背景图
//通过缓存池pCache拿到该精灵帧,存在pFrame里面
SpriteFrame* pFrame =  pCache->getSpriteFrameByName("Background.png");
Sprite* pBg = Sprite::createWithSpriteFrame(pFrame);

//设置背景图的位置与挂载
pBg->setAnchorPoint(Vec2(0, 0));
this->addChild(pBg,0);

3、创建菜单按钮(合图)

MenuItemImage* m_pStartButton;
//创建一个空菜单按钮对象
m_pStartButton = MenuItemImage::create("","",CC_CALLBACK_1(CGameMenu::onBtnEvent,this));  //创建空按钮
//设置按钮图片和位置
m_pStartButton->setNormalSpriteFrame(pCache->getSpriteFrameByName("StartNormal.png")); //通过图片调用接口设置精灵帧
m_pStartButton->setSelectedSpriteFrame(pCache->getSpriteFrameByName("StartSelected.png"));
m_pStartButton->setPosition(Vec2(160, 320));
//把所有的菜单按钮放入菜单城
auto menu = Menu::create(m_pStartButton,nullptr);

4、菜单城(单图)

//菜单按钮
auto closeItem = MenuItemImage::create("CloseNormal.png", "CloseSelected.png", CC_CALLBACK_1(HelloWorld::menuCloseCallback, this)); //设置回调函数,一个参数CC_CALLBACK_1
//设置相对于菜单城的位置
float x = origin.x + visibleSize.width - closeItem->getContentSize().width / 2;
float y = origin.y + closeItem->getContentSize().height / 2;
closeItem->setPosition(Vec2(x, y));
//菜单城
auto menu = Menu::create(closeItem, NULL);   //把按钮放进菜单城
menu->setPosition(Vec2::ZERO);  //设置菜单城位置(0,0)
this->addChild(menu, 1);  //将菜单城统一添加进场景
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值