展会信息港展会大全

Cocos2d-x 3.2 大富翁游戏项目开发-第十七部分 Toast提示框,cocos2d-xtoast
来源:互联网   发布日期:2015-09-28 14:39:46   浏览:818次  

导读: Cocos2d-x 3.2 大富翁游戏项目开发-第十七部分 Toast提示框,cocos2d-xtoast 在缴纳过路费时,在角色附近显示减少的资金数,收到过路费的角色显示增加的资金数,效果如...

Cocos2d-x 3.2 大富翁游戏项目开发-第十七部分 Toast提示框,cocos2d-xtoast

在缴纳过路费时,在角色附近显示减少的资金数,收到过路费的角色显示增加的资金数,效果如图

网上有不少这方面的资料,我拿来稍微修改了一下

写一个CocosToast吐司类

#ifndef __CocosToast_H__

#define __CocosToast_H__

#include "cocos2d.h"

#include "cocos-ext.h"

USING_NS_CC;

using namespace std;

class CocosToast : public LayerColor

{

public:

CocosToast(void);

~CocosToast(void);

static void createToast(Node* node,const std::string& msg,const float& time,Vec2 point);

void removeToast(Node* node);

};

#endif

#include "CocosToast.h"

参数

node:添加该Toastlayer的父节点

msg:显示的信息

time:toast显示的时间长短

point:toast显示的位置坐标

void CocosToast::createToast(cocos2d::Node *node, const std::string &msg, const float &time,Vec2 point)

{

//创建显示信息的label

auto label = Label::createWithSystemFont(msg.c_str(), "Arial", 20);

label->setColor(Color3B::WHITE);

label->ignoreAnchorPointForPosition(false);

label->setAnchorPoint(Vec2::ANCHOR_MIDDLE);

//toast的layer层

auto layer = LayerColor::create(Color4B(100,100,100,255));

layer->ignoreAnchorPointForPosition(false);

layer->setAnchorPoint(Vec2::ANCHOR_MIDDLE);

layer->setContentSize(label->getContentSize() + Size(20,15));

node->addChild(layer);

node->addChild(label);

layer->setPosition(point);

label->setPosition(layer->getPosition());

//toast显示时的动作,先由下而上,再由上而下,回到point的位置,动作结束时,把toast从父节点清除

auto seq1 = Sequence::create(FadeIn::create(time/5), DelayTime::create(time/5*1.5),FadeOut::create(time/5*2.5),CallFuncN::create(layer,callfuncN_selector(CocosToast::removeToast)),NULL);

auto seq2 = Sequence::create(EaseSineIn::create(MoveBy::create(time/5, Vec2(0,50))),DelayTime::create(time/5*2),EaseSineOut::create(MoveBy::create(time/3, Vec2(0,-50))), NULL);

auto spawn = Spawn::create(seq1, seq2, NULL);

auto action = Repeat::create(spawn,1);

layer->setOpacity(0);

label->setOpacity(0);

layer->runAction(action);

label->runAction(action->clone());

}

void CocosToast::removeToast(Node* node)

{

this->removeFromParentAndCleanup(true);

}

CocosToast::CocosToast(void)

{

}

CocosToast::~CocosToast(void)

{

}

现在修改一下GameBaseScene的payTolls方法

void GameBaseScene::payTolls(int payTag,float x,float y ,int playerTag)

{

…………

switch(playerTag)

{

case PLAYER_1_TAG:

{

int retMoney = displayArea(x,y,player1,player2_building_1_tiledID,player2_building_2_tiledID,player2_building_3_tiledID);

refreshMoneyLabel(landOwner,money + retMoney);

refreshMoneyLabel(player1,-(money + retMoney));

//Toast显示相应角色增加和减少的资金数

CocosToast::createToast(this, String::createWithFormat("+%d",money + retMoney)->getCString(), TOAST_SHOW_TIME,landOwner->getPosition());

CocosToast::createToast(this, String::createWithFormat("-%d",money + retMoney)->getCString(), TOAST_SHOW_TIME,player1->getPosition());

//注意当是第一角色时,延时TOAST_SHOW_TIME秒后发送继续行走消息,避免toast显示过于频繁

scheduleOnce(schedule_selector( GameBaseScene::sendMSGPickOneToGO),TOAST_SHOW_TIME);

break;

}

case PLAYER_2_TAG:

{

int retMoney = displayArea(x,y,player2,player1_building_1_tiledID,player1_building_2_tiledID,player1_building_3_tiledID);

refreshMoneyLabel(landOwner,money + retMoney);

refreshMoneyLabel(player2,-(money + retMoney));

CocosToast::createToast(this, String::createWithFormat("+%d",money + retMoney)->getCString(), TOAST_SHOW_TIME,landOwner->getPosition());

CocosToast::createToast(this, String::createWithFormat("-%d",money + retMoney)->getCString(), TOAST_SHOW_TIME,player2->getPosition());

NotificationCenter::getInstance()->postNotification(MSG_PICKONE_TOGO,String::createWithFormat("%d",MSG_PICKONE_TOGO_TAG));

break;

}

}

……………….

}

点击下载代码

http://download.csdn.net/detail/lideguo1979/8334883

未完待续...................

http://www.bkjia.com/Androidjc/939138.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/939138.htmlTechArticleCocos2d-x 3.2 大富翁游戏项目开发-第十七部分 Toast提示框,cocos2d-xtoast 在缴纳过路费时,在角色附近显示减少的资金数,收到过路费的角色显...

赞助本站

人工智能实验室

相关热词: android开发 应用开发

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港