Cocos2d-x 3.2 大富翁游戏项目开发-第十七部分 Toast提示框
来源:互联网 发布:淘宝客浏览器插件 编辑:程序博客网 时间:2024/05/19 18:17
在缴纳过路费时,在角色附近显示减少的资金数,收到过路费的角色显示增加的资金数,效果如图
网上有不少这方面的资料,我拿来稍微修改了一下
写一个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:添加该Toast layer的父节点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
未完待续...................
0 0
- Cocos2d-x 3.2 大富翁游戏项目开发-第十七部分 Toast提示框
- Cocos2d-x 3.2 大富翁游戏项目开发-第二十五部分 大富翁股市
- Cocos2d-x 3.2 大富翁游戏项目开发
- Cocos2d-x 3.2 大富翁游戏项目开发-第二十八部分 游戏保存和载入存档游戏
- Cocos2d-x 3.2 大富翁游戏项目开发-第九部分 代码部分优化
- Cocos2d-x 3.2 大富翁游戏项目开发-第五部分 单机游戏-关卡选择ScrollView
- Cocos2d-x 3.2 大富翁游戏项目开发-第二十七部分 技能提升和游戏结束判断
- Cocos2d-x 3.2 大富翁游戏项目开发-第二十九部分 游戏配音
- Cocos2d-x 3.2 大富翁游戏项目开发-第三十部分 项目移植
- Cocos2d-x 3.2 大富翁游戏项目开发-第二部分片头动画
- Cocos2d-x 3.2 大富翁游戏项目开发-第三部分 菜单场景
- Cocos2d-x 3.2 大富翁游戏项目开发-第四部分 退出对话框
- Cocos2d-x 3.2 大富翁游戏项目开发-第六部分 地图设计
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_1
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_2
- Cocos2d-x 3.2 大富翁游戏项目开发-第七部分 获取角色路径_3
- Cocos2d-x 3.2 大富翁游戏项目开发-第八部分 角色按路径行走
- Cocos2d-x 3.2 大富翁游戏项目开发-第十部分实现人物轮流行走
- TCL招聘专职游戏体验师 用户体验成大屏游戏重点
- POJ 1840 Eqs
- Java Random 随机数
- C# 窗体(Form)中如何实现全局快捷键 如:[Ctrl + Enter]
- 01-2. Maximum Subsequence Sum (25)
- Cocos2d-x 3.2 大富翁游戏项目开发-第十七部分 Toast提示框
- [水题][第一阶段-回归水题][HDOJ-2030]汉字统计
- java中统计字符串中汉字,英文,数字,特殊符号个数
- BZOJ1003 [ZJOI2006]物流运输trans(集合型动态规划)
- 魔漫相机任晓倩:我是这样说服马云投资千万美金的
- POJ-1475(A*算法)
- 新的SQUASHFS 4.3中的unsquashfs4新特性,能显示镜像当初的生成参数了
- Export MODO file for MAYA
- ContentProvider ,ContentObserver 和ContentResolver