cocos2d-x 植物大战僵尸(三) bool型值对游戏流程的控制
来源:互联网 发布:数据科学 北大 编辑:程序博客网 时间:2024/04/30 08:52
当植物枪产生以后要进入一个冷却时间;在这段时间内不允许产生新的植物枪;这需要一个bool型值来控制;
声明一个bool型变量
bool _control;//这个变量用来控制倒计时过程中,禁止产生植物抢;
初始化为false;
下面这段代码主要是实现: 当发生触摸时产生植物枪 ,它有三个约束条件 (触摸点必须在卡片上, 金币必须大于$100 ,下面一个条件就是我们的bool型变量 它必须是false的时候才可以产生植物枪)
冷却时间内点击卡片不能产生植物枪
当冷却时间为零时。销毁冷却时间板。设置冷却时间为50s ,又可以产生植物枪了
void GameLayer::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent)
{
CCTouch* touch = (CCTouch*)pTouches->anyObject();
if(this->_shootCard->boundingBox().containsPoint(touch->getLocation()) && this->_allScore>=100 && this->_control==false)
{
//创建植物枪
this->_plantSprite =PlantSprite::create();
this->_batchNode_Plant->addChild(this->_plantSprite);
// 每个植物枪消耗100金币
this->_allScore =this->_allScore-100;
//改变植物枪和卡片的z轴顺序
this->reorderChild(this->_batchNode_Plant,10);
//设置植物枪产生的位置为触摸点位置
POINT tCurrPos;
::GetCursorPos(&tCurrPos);
CCEGLView* pGELView = CCDirector::sharedDirector()->getOpenGLView();
::ScreenToClient(pGELView->getHWnd(),&tCurrPos);
CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize();
this->_plantSprite->setPosition(ccp(tCurrPos.x/pGELView->getFrameZoomFactor() ,visibleSize.height - tCurrPos.y/pGELView->getFrameZoomFactor()));
this->draw();
//植物枪产生后进入冷却时间
this->is_create =true;
if(is_create)
{
//实现倒计时
this->_down_Label =CCLabelTTF::create();
CCString* downStr = CCString::createWithFormat("%d",this->_dowmTime);
this->_down_Label->setString(downStr->m_sString.c_str());
this->addChild(this->_down_Label,3);
this->_down_Label->setPosition(ccp(this->_shootCard->getPosition().x,this->_shootCard->getPosition().y));
this->_down_Label->setFontSize(30);
schedule(schedule_selector(GameLayer::downTime),1.0f); //实现倒计时
}
}
}
//更新倒计时/更新冷却时间 (在冷却时间内设置我们的bool形变量为true ,这样就不可以产生植物枪了)
void GameLayer::downTime(float dt)
{
this->_dowmTime =this->_dowmTime -1;
CCString* downStr = CCString::createWithFormat("%d",this->_dowmTime);
this->_down_Label->setString(downStr->m_sString.c_str());
if(this->_dowmTime<50)
{
this->_control =true;
}
if(this->_dowmTime==0) //当冷却时间为零时 ,销毁冷却时间版 。。将bool变量设为false;
{
unschedule(schedule_selector(GameLayer::downTime));
this->removeChild(this->_down_Label);
this->_dowmTime =50;
this->_control=false;
}
}
- cocos2d-x 植物大战僵尸(三) bool型值对游戏流程的控制
- cocos2d-x 植物大战僵尸(一:)
- cocos2d-x 植物大战僵尸(二)
- cocos2d-x植物大战僵尸(1) (地图的加载)
- cocos2d-x 植物大战僵尸(5)植物卡的产生
- cocos2d-x 植物大战僵尸(6) 触摸植物卡的消息响应
- cocos2d-x 植物大战僵尸(4) 帽子僵尸的产生
- Cocos2d 植物大战僵尸游戏解析
- cocos2d-x 植物大战僵尸(7) 触摸植物卡产生植物枪
- cocos植物大战僵尸(三)游戏场景:地图滚动
- 使用Quick-Cocos2d-x开发植物大战僵尸03-游戏加载页面
- coco2d-x版的植物大战僵尸
- Cocos2d-x简单游戏<植物大战僵尸>代码实现|第六部分:植物类<后续会提供源码下载链接>
- Cocos2d-x简单游戏<植物大战僵尸>代码实现|第七部分:僵尸类<后续会提供源码下载链接>
- Cocos2d-x使用CCAnimation小实验——显示植物大战僵尸中的植物和僵尸
- 使用Quick-Cocos2d-x开发植物大战僵尸04-展示植物卡片与僵尸
- (大二游戏)植物大战僵尸之僵尸来袭
- Cocos2d-x简单游戏<植物大战僵尸>代码实现|第一部分:开始场景<后续会提供源码下载链接>
- 第十四周 数字排列 简单的函数版
- Oracle10g创建一个完整的用户、表空间
- 升级版:用数组求Fibonacci序列
- linux命令的正则表达式
- sql学习小结
- cocos2d-x 植物大战僵尸(三) bool型值对游戏流程的控制
- ArcEngine中设置添加图层的图例显示为水平一行的样式的方法
- UVa1352彩色立方体(部分枚举和贪心)
- 第十四周项目6-1-字符串操作(string做法)
- 好文章精选
- 电信光纤猫HG8245 超级密码 及路由功能启用
- sp执行cud
- Netty的线程模式
- JS、HTML和CSS在线格式化工具