cocos2dx用裁剪区域CCClippingNode实现滚动字幕

要实现文字在一定区域里滚动,首先用CCClippingNode做出一个剪裁区域,在这个区域内文字可以显示,出了这个区域之后文字就看不到。

bool TestLayer::init()
{
  CCSize size = CCDirector::sharedDirector()->getVisibleSize();

  //创建要显示的文字
  text = CCLabelTTF::create("text\nbaibai\n白白\nbaibai\nhaha\nhaha\nahha\n", "", 30);
  text->setPosition(ccp(100, -120));

  //绘制裁剪区域
  CCDrawNode* shap = CCDrawNode::create();
  CCPoint point[4] = {ccp(0,0), ccp(200, 0), ccp(200, 200), ccp(0, 200)};
  shap->drawPolygon(point, 4, ccc4f(355, 255, 255, 255), 2, ccc4f(255, 255, 255, 255));
  CCClippingNode* cliper = CCClippingNode::create();
  cliper->setStencil(shap);
  cliper->setAnchorPoint(ccp(.5, .5));
  cliper->setPosition(ccp(100, 20));
  addChild(cliper);
  //把要滚动的文字加入到裁剪区域
  cliper->addChild(text);

  //文字滚动,超出范围后从新开始
  schedule(schedule_selector(CTestLayer::rollText));
  return true;
}

void TestLayer::rollText(float)
{
  text->getPositionY()>300 ? text->setPositionY(-150) : text->setPositionY(text->getPositionY()+2);
}

效果图:

时间: 2024-11-03 03:25:08

cocos2dx用裁剪区域CCClippingNode实现滚动字幕的相关文章

cocos2d-x利用CCClippingNode实现滚动字幕

这周单位要做一个人脸美化的项目,查资料遇到这位大牛的博客,地址如下:点击打开链接 我的代码也是在他的基础上进行修改的,但是他对图像的RGB三个通道平等调节,为了适应我的需求,我改成了针对三个通道分别调节.废话不多说,开始上源码 void ImageAdjust(Mat& src, Mat& dst, vector<double> low_in, vector<double> high_in, vector<double> low_out, vector&

cocos2d-x新手引导遮罩CCClippingNode裁剪区域

废话不多说,我直接封装了一个类,是个layer,需要的时候直接添加layer就行  //白白原创 头文件 #pragma once #include "cocos2d.h" USING_NS_CC; const int kTagBackground=0; const int kTagClipNode=1; const int kTagTip=2; class TestLayer : public CCLayer { public: CREATE_FUNC(TestLayer); vir

【Cocos2dx 3.3 Lua】滚动字幕

参考资料: http://blog.csdn.net/jackystudio/article/details/12991977 1.原理 通过调用update来更新位置达到的移动效果,和背景滚动有点类似,一旦滚动结束就重置为起点,开始新的滚动.只是为了达到在某个区域内滚动而不至于超出这个区域,有时候会用一些前景图来做遮盖,所以这个时候其实字幕或者公告是有在后面滚动的,但是被遮住了,因此看起来就像是只在某个区域内滚动. 垂直滚动: 如下图 由底层和字幕以及遮盖层组成 水平滚动:      设置字幕

滚动字幕

1.Designer.cs代码 namespace FollCaption { partial class Form1 { /// <summary> /// 必需的设计器变量. /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源. /// </summary> /// <param name=&

【COCOS2DX-游戏开发之三四】cocos2dx 3.0 TableView特殊用法:滚动时不能选择等等

cocos2dx 3.0版本TableView拍生自ScrollView,常用来做滚动列表,有几种特殊用法,不知道大家用到过没 要求:1.滚动时不能选中TableCell,非滚动状态才能选中 很简单,在TableView的delegate函数中,通过isTouchMoved()函数来判断 void WeaponSelectLayer::tableCellUnhighlight(cocos2d::extension::TableView* table, cocos2d::extension::Ta

制作由下向上的滚动字幕,字幕内容要求包含网站超级链接和图片超级链接, 使用鼠标移动事件控制字幕运动和停止。 2、在下拉列表框中设置五种以上颜色,选择颜色后, 滚动字幕背景色改变成相应颜色

<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title></title>    </head>    <!--        时间:2016-12-28        描述:1.制作由下向上的滚动字幕,字幕内容要求包含网站超级链接和图片超级链接,                   使用鼠标移动事件控制

使用UILabel实现滚动字幕移动效果

这个链接中的代码也实现了这种效果 https://github.com/cbpowell/MarqueeLabel 最终效果如下: 原理如下: 1. 获取文本 2. 计算文本宽度 3. 将这个Label放入ScrollView中 4. 将ScrollView的contentSize的宽度设置与文本宽度一致 5. 做动画 *6. 边缘的渐隐效果请使用带透明像素的PNG图片 // // RootViewController.m // // Copyright (c) 2014年 Y.X. All r

02 HTML 列表 块行元素 滚动字幕 文本图片锚点超链接 相对绝对URL 图片标记

定义列表 <div>和<span> 块元素和行内元素 网页颜色表示 滚动字幕标记 计算机进制 计算机编码介绍 超级链接 超级链接的标记<a></a>,双边标记,是行内元素 URL介绍 绝对URL和相对URL地址 相对URL地址:一般是用于链接本网站中的各个文件的路径. 其它常用的链接 锚点链接:实现在一个网页的不同部分进行跳转 图片标记 定义列表 定义列表的格式: <dl>        <dt>定义标题</dt>    

js原生 + jQuery实现页面滚动字幕

js原生/jQuery实现页面滚动字幕效果 17:45:49 在新闻列表或者文章列表信息等页面中很容易要求实现字幕滚动的效果,以下为简单的实现页面中滚动字幕的效果 1.jQuery实现页面滚动字幕效果 代码如下: <div class="box"> <ul class="list"> <li>这是滚动加载的第1条数据</li> <li>你猜猜这是第几条滚动加载的文字</li> <li>