zoukankan      html  css  js  c++  java
  • toast提示框的实现

    Toast.h文件

    #ifndef Toast_h__
    #define Toast_h__
    #include "cocos2d.h" 
    #include "cocos-ext.h" 
    #include "ui/CocosGUI.h" 
    USING_NS_CC; 
    USING_NS_CC_EXT; 
    using namespace ui; 
    class Toast : public LayerColor { 
    public:  static void makeText(Node* node,const std::string& msg,const float& time);//静态函数,方便类直接调用 
    		 void removeToast(Node* node); };
    
    #endif // XYToast_h__
    

    Toast.cpp文件

    #include "Toast.h"
    void Toast::makeText(cocos2d::Node *node, const std::string &msg, const float &time) { 
    	
    	Size visibleSize = Director::getInstance()->getVisibleSize(); 
    Vec2 origin = Director::getInstance()->getVisibleOrigin(); 
    
    auto pLabel = Label::createWithSystemFont(msg.c_str(), "Arial", 30);
    pLabel->setColor(Color3B::WHITE); pLabel->ignoreAnchorPointForPosition(false);
    
    pLabel->setAnchorPoint(Vec2::ANCHOR_MIDDLE);
    
    auto ly = LayerColor::create(Color4B(130, 120, 120, 255)); 
    
    ly->ignoreAnchorPointForPosition(false); 
    
    ly->setAnchorPoint(Vec2::ANCHOR_MIDDLE); 
    
    ly->setContentSize(pLabel->getContentSize() + Size(20, 15));  node->addChild(ly);
    node->addChild(pLabel); 
    
    //ly->setPosition(Vec2(visibleSize.width / 2, -pLabel->getContentSize().height)); 
    ly->setPosition(Vec2(visibleSize.width / 2, visibleSize.height / 2+100));
    pLabel->setPosition(ly->getPosition());
    //auto seq1 = Sequence::create(FadeIn::create(time / 5), DelayTime::create(time / 5 * 1.5), FadeOut::create(time / 5 * 2.5), CallFuncN::create(ly, callfuncN_selector(PacToast::removeToast)), nullptr);
    //auto seq2 = Sequence::create(EaseSineIn::create(MoveBy::create(time / 5, Vec2(0, 200))), DelayTime::create(time / 5 * 2), EaseSineOut::create(MoveBy::create(time / 3, Vec2(0, -200))), nullptr);
    	auto seq1=CCSequence::create(CCFadeIn::create(time / 5),
    		CCDelayTime::create(time / 5 * 3), CCFadeOut::create(time / 5), CallFuncN::create(ly, callfuncN_selector(Toast::removeToast)), nullptr);
    auto spawn = Spawn::create(seq1, nullptr); 
    
    auto action = Repeat::create(spawn, 1);
    ly->setOpacity(0);
    
    pLabel->setOpacity(0);
    
    ly->runAction(action);
    
    
    pLabel->runAction(action->clone());
    
    }
    
    
    void Toast::removeToast(Node* node) {
    	log("node = %s", node->getDescription().c_str()); 
    this->removeFromParentAndCleanup(true);
    }

    调用代码:Toast::makeText(this, "Toast!", 2.5f);


  • 相关阅读:
    Python 练习册,每天一个小程序----第0000题
    CMDB系统原创开发
    203.pycharm连接远程终端
    202. 菜鸟学习k8s安装1
    (高并发)防止重复点击,屏蔽多次无效请求的解决方案(优惠劵被重复领取,恶意撸羊毛)
    SSM批量插入和修改实现实例
    java服务器访问其他服务器工具类编写
    递归实例,欢迎大家修改优化
    SpringJDBC
    Spring入门
  • 原文地址:https://www.cnblogs.com/Anzhongliu/p/6091804.html
Copyright © 2011-2022 走看看