lua滚动文字效果
基本的思想都是创建一个clippingNode,将要截取的节点添加到clippingNode中,节点加上action即可。
下面是左右滚动的代码,如果是上下滚动,更简单了,只需修改Y坐标即可,都不用动态去计算时间。
-- 获取宽字符的宽度
function wideWordWidth(fontName, fontSize)
local key = generateKey(fontName, fontSize)
if mWideWordWidth[key] == nil then
local str ="ABCDEFGHIGKLMNopqrstuvwxyz1234567890"
mWideWordWidth[key] = cc.LabelTTF:create(str, fontName, fontSize):getContentSize().width / (string.len(str) / )
end
return mWideWordWidth[key]
end -- 生成key
function generateKey(fontName, fontSize)
return string.format("%s%d", fontName, fontSize)
end -- 1 创建剪裁区
self.m_pClipRect = cc.rect(, display.cy, display.width * 0.2, display.height * 0.2)
self.m_pClipNode = display.newClippingRegionNode(self.m_pClipRect):addTo(self) -- 2 创建文本区域
self.msgContent = cc.ui.UILabel.new({
text = "你好 我是滚动文本",
font = FONT_NAME,
size = ZySize.SCALE(),
color = cc.c3b(, , ),
dimensions = cc.size(w, h),
align = ui.TEXT_ALIGN_CENTER, -- 文字内部居中对齐
valign = ui.TEXT_VALIGN_CENTER -- 文字内部居中对齐
})
:align(display.CENTER_LEFT, self.m_pClipRect.width + self.m_pClipRect.x, self.m_pClipRect.y + display.height * 0.2 * 0.5)
:addTo(self.m_pClipNode) -- 3 滚动文字的长度
local textW = math.round( self.msgContent:getContentSize().width) -- 4 移动距离
local nDistance = math.round( self.m_pClipRect.width) + textW -- 5 移动所需时间
local speed = --一秒移动多少个文字的距离
local nTime = math.floor(nDistance/wideWordWidth(FONT_NAME, ZySize.SCALE())/speed) -- 6 动作
local tarfinsh = function()
if self.msgContent ~= nil then
self.msgContent:removeSelf()
self.msgContent = nil
end
end local pAction = cc.MoveBy:create(nTime, cc.p(-self.m_pClipRect.width, ))
local pCallback = cc.CallFunc:create(tarfinsh)
local rep = cc.Sequence:create(pAction, pCallback)
self.msgContent:runAction(rep)
上下滚动动作部分代码
local pActionShow = cc.MoveTo:create(0.5, cc.p(display.cx, self.m_pClipRect.y + self.m_pClipRect.height * 0.5))
local pActionStay = cc.DelayTime:create()
local pActionDisappear = cc.MoveTo:create(0.5, cc.p(display.cx, self.m_pClipRect.y + self.m_pClipRect.height + self.m_pClipRect.height * 0.5 ))
local pCallback = cc.CallFunc:create(tarfinsh)
local rep = cc.Sequence:create(pActionShow, pActionStay, pActionDisappear, pCallback)
self.msgContent:runAction(rep)
lua滚动文字效果的更多相关文章
- android - TextView单行显示...或者文字左右滚动(走马灯效果)
条件 TextView单行显示,文字左右滚动(走马灯效果)实现条件: 实现单行设置固定宽度或者设置权重都行 代码 TextView滚动必须写下面几个属性 android:singleLine=&quo ...
- Taro -- 文字左右滚动公告效果
文字左右滚动公告效果 设置公告的左移距离,不断减小,当左移距离大于公告长度(即公告已移出屏幕),重新循环. <View className='scroll-wrap'> <View ...
- html5实现滚动文字
<div class="custom-notice"> <i class="icon-notice"></i> <ma ...
- HTML滚动文字代码 marquee标签
看到一个HTML滚动文字代码 marquee标签的内容,非常全面,而且觉得有点意思,可以让大家为自己博客或者网站设置一个漂亮的滚动文字. 以下是原文: <marquee style=" ...
- HTML如何实现滚动文字
HTML如何实现滚动文字 一.总结 一句话总结:marquee标签,也可以用js和css来实现 marquee标签 也可jss和css <marquee><span style=&q ...
- 网页HTML代码:滚动文字的制作
本节笔者讲述HTML代码中比较特殊的标签,它能使网页中的文字滚动,并且可以控制其滚动的属性. 制作滚动文字 通过本章前面的学习,读者已经能够很好地控制各种段落文字的显示方式,不过无论怎么设置,文字都是 ...
- (五十三)c#Winform自定义控件-滚动文字
前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kwwwvagaa/NetWinformControl 码云:ht ...
- Vue.js大屏数字滚动翻转效果
================================ 大屏数字滚动翻转效果来源于最近工作中element后台管理页面一张大屏的UI图,该UI图上有一个模块需要有数字往上翻动的效果,以下是最 ...
- Python之pygame学习绘制文字制作滚动文字
pygame绘制文字 ✕ 今天来学习绘制文本内容,毕竟游戏中还是需要文字对玩家提示一些有用的信息. 字体常用的不是很多,在pygame中大多用于提示文字,或者记录分数等事件. 字体绘制基本分为以下几个 ...
随机推荐
- java---迭代器(Iterator)
迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为“轻量级”对象,因为创建它的代价小. Java中的Iterator功能比较简单, ...
- Java中I/O流之数据流
Java 中的数据流: 对于某问题:将一个 long 类型的数据写到文件中,有办法吗? 转字符串 → 通过 getbytes() 写进去,费劲,而且在此过程中 long 类型的数需要不断地转换. ...
- Java中的增强for循环
增强 for 循环 1. 增强的 for 循环对于遍历 Array 或 Collection 的时候相当方便. import java.util.*; public class Test { publ ...
- RXSwift--登录注册那点事
在iOS学习中登录注册是一个万能的可以拿出来实战的demo.接下来我们就从登录开始入手,PS:如果你对RXSwift中的概念和一些常用的函数不清楚可以参考这篇文章(可能打开比较慢请耐心等待).开始直接 ...
- 我爱C语言
各位同志们好,我是来自计算机系的谢畅,我是一个平时看起来高冷其实很逗比的人,我的爱好有很多但只是会一些基础比如游泳,篮球,听听音乐什么的.我的特长是弹吉他虽然弹得不是很溜,我还喜欢朗诵.刚开始我并不是 ...
- AngularJS 学习笔记--01
学习 AngularJS 要先了解 MVC 模式 , 即 " 模型--视图--控制器 " . 模型: 包含了需要用到的数据 ; 有两种广义上的模型 : 视图模型 , 只表示从控制器 ...
- 【bzoj1717】[Usaco2006 Dec]Milk Patterns 产奶的模式 后缀数组+离散化
题目描述 农夫John发现他的奶牛产奶的质量一直在变动.经过细致的调查,他发现:虽然他不能预见明天产奶的质量,但连续的若干天的质量有很多重叠.我们称之为一个“模式”. John的牛奶按质量可以被赋予一 ...
- Django 2.0 学习(10):Django 定制化
定制化admin表单 通过使用admin.site.register(Question)注册Question模型,Django可以构造默认的表单.通常,可以通过对象的注册机制来告诉Django我们想要 ...
- 虚拟机如何设置U盘启动项
开始配置虚拟机时选"自定义"不要选"典型",在“SCSI设配器”选LSI logic ,(不是默认的那个):然后其他正常默认创建,虚拟机建好后,再添加U盘为虚拟 ...
- [HZOI2016]偏序&[HZOI2015]偏序II K维偏序问题
description Cogs: [HZOI2016]偏序 [HZOI2015]偏序 II data range \[ n\le 5\times 10^4\] solution 嵌套\(CDQ\)的 ...