cocos2dx cocos2dx 3.x 公告栏 通知栏 滚动字幕 区域弹幕 区域显示 实现
来源:互联网 发布:青云志网络总播放量 编辑:程序博客网 时间:2024/06/02 02:38
.h
#pragma once
#include "cocos2d.h"
#include <iostream>
#include <stdio.h>
USING_NS_CC;
using namespace std;
class FlowWorld :public Node
{
protected:
Node* _holder;
Sprite* _newsBg;
Label* _news;
DrawNode* _shap;
ClippingNode* _cliper;
public:
static FlowWorld* fWorld;
static FlowWorld* getIntance();
FlowWorld* createFW(Sprite* sp);
FlowWorld();
~FlowWorld();
void scrollText(float);
CREATE_FUNC(FlowWorld);
};
2..cpp
#include "FlowWorld.h"
#include "ScriptData.h"
#include "utill/SXMJUtill.h"
FlowWorld::FlowWorld()
{
_holder = NULL;
_newsBg = NULL;
_news = NULL;
_shap = NULL;
_cliper = NULL;
}
FlowWorld::~FlowWorld() {}
FlowWorld* FlowWorld::fWorld = NULL;
FlowWorld* FlowWorld::getIntance(){
if (!fWorld)
{
fWorld = new FlowWorld();
}
return fWorld;
}
FlowWorld* FlowWorld::createFW(Sprite* sp){
Point p = Point(130.0f, 0.0f);
float w = 600.0f;
float h = 80.0f;
auto shap = DrawNode::create();
shap->clear();
//标记显示的矩形区域
Point point[4] = { Point(p.x, p.y), Point(p.x + w, p.y), Point(p.x + w, p.y + h), Point(p.x, h) };//标记显示的矩形区域
shap->drawPolygon(point, 4, Color4F(355, 255, 255, 255), 2, Color4F(255, 255, 255, 255));
shap->setColor(Color3B::RED);//剪切用于显示的矩形区域,参数对应;用于标识区域的Point(Vec2)数组指针,数组长度,填充颜色,边框宽度,边框颜色。
auto cliper = ClippingNode::create();
cliper->setStencil(shap);
cliper->setAnchorPoint(Point(0.5, 0.5));
vector<string>str;
str.push_back(ScriptData<string>("Message1").Value());
str.push_back(ScriptData<string>("Message2").Value());
str.push_back(ScriptData<string>("Message3").Value());
str.push_back(ScriptData<string>("Message1").Value());
str.push_back(ScriptData<string>("Message2").Value());
str.push_back(ScriptData<string>("Message3").Value());
str.push_back(ScriptData<string>("Message1").Value());
_news = Label::create(SXMJUtill::getIntance()->vectorToString(str), "Microsoft Yahei", 24);
_news->setColor(Color3B::YELLOW);
_news->setPosition(Point(p.x + w - 10, 37));
_news->setAnchorPoint(Point::ZERO);
cliper->addChild(_news);
cliper->addChild(shap);
sp->addChild(cliper);
//layout();
schedule(schedule_selector(FlowWorld::scrollText));//实现公告文字滚动
return this;
}
void FlowWorld::scrollText(float)
{
_news->getPosition().x < (-1 * _news->getContentSize().width) ? _news->setPositionX(720) : _news->setPositionX(_news->getPositionX() - 2);
}
- cocos2dx cocos2dx 3.x 公告栏 通知栏 滚动字幕 区域弹幕 区域显示 实现
- cocos2dx用裁剪区域CCClippingNode实现滚动字幕
- Cocos2dx lua 横向滚动字幕实现
- cocos2dx 3.x判断node点击区域是否透明
- cocos2dx-lua实现弹幕
- cocos2dx实现手动选取区域截图
- cocos2dx设置剪裁区域
- cocos2dx 裁剪区域
- android通知公告栏,textview滚动显示上网实现
- Cocos2d用裁剪区域CCClippingNode实现滚动字幕
- cocos2dx中创建裁剪区域 实现在指定区域精灵才能出现
- cocos2d-x 利用精灵的可见区域制作字幕滚动效果
- Cocos2dx Widget 按钮透明区域过滤
- cocos2dx不响应透明区域事件
- 如何实现字幕效果,cocos2dx ,Lua
- 如何实现字幕效果,cocos2dx ,Lua
- cocos2dx添加虚拟弹幕
- 认识 Cocos2dx 3.x
- WINAPI CALLBACK __stdcall __cdecl
- bzoj3529【线性筛】【莫比乌斯函数】【树状数组】
- windows系统中的两类重定向说明
- NOIP2010 提高组 机器翻译
- 通过CSS实现颜色渐变
- cocos2dx cocos2dx 3.x 公告栏 通知栏 滚动字幕 区域弹幕 区域显示 实现
- 关于java内部类的继承的一个小问题
- node编写服务器与传统服务器Apache、IIS区别
- Gson入门篇——常用用法
- Jsoup解析html某片段的问题
- 909422229________Web分页技术
- 苏嵌29 16.12.09
- redis lua脚本学习笔记math.random()获取随机数
- java io总结