简单易用的跑马灯-Cocos Creator

【Unity、Cocos】使用“角度渐变” 实现跑马灯(流水灯)效果 总结:重点就是实现 “角度渐变shader” ,关于shader实现思路,其实博主也不太懂~ shader是由chatgpt生成的,会用它就行了哈哈。用于控制渐变角度,通过代码不停变换角度即可实现,下面给出详细的步骤,Unity版本:2021.3.23f1c1。① 创建一个sprite(精灵)对象,将 材质 和 准备好的 透明底 边框 贴图 放至对应属性上。② 注意这里有个坑,边框贴图的 Packable 要 取消打勾 ,否则会导致uv显示不正确。的shader,shader公开一个。 阅读详情

本文概要

本次我要分享的是,在游戏中非常常用的一个功能-跑马灯。可能在游戏中的通知公告、弹幕消息中用到。

 

效果图

 

 

实现思路

这里用到了遮罩Mask组件,Mask 用于规定子节点可渲染的范围,带有 Mask 组件的节点会使用该节点的约束框(也就是 属性检查器 中 Node 组件的 Size 规定的范围)创建一个渲染遮罩,该节点的所有子节点都会依据这个遮罩进行裁剪,遮罩范围外的将不会渲染。

 

创建一个带有遮罩Mask的Node,然后再创建一个带有Sprite组件的Node作为跑马灯的背景,再就是创建带有一个RichText(或者Label)组件的Node。

然后把Label的锚点设置为(0,0.5),最好是将锚点X设置为0,这样的话,Label节点的水平位置会以节点的左边界为基准。便于后面的位置计算。

 

在这里主要是处理Label节点的位置的变化,一直以某个速度往某个方向偏移,比如一直往右偏移,那么就在update中,每帧将x坐标加一个定值,刷新后,节点的位置自然就会往右偏移。往左偏移,处理方式也是一样的。每帧将x坐标减一个定值。

 

要考虑的是边界情况,一旦Label偏移到了Mask的边界,例如到了Mask右边界,那我们就把Label的位置设置为Mask的左边界x坐标 - Label的宽度width,防止Label直接出现在Mask中,显得十分突兀。那如果是往左偏移,到了Mask左边界 - Label的宽度width,那就直接将Label的x坐标设置为Mask的右边界x坐标,即可实现效果。

 

上代码

 

const { ccclass, property } = cc._decorator;

enum Direction {
    LEFT_TO_RIGHT = 1,
    RIGHT_TO_LEFT,
}

@ccclass
export default class HorseReceLamp extends cc.Component {

    @property(cc.RichText)
    label: cc.RichText = null;

    @property(cc.Mask)
    maskNode: cc.Mask = null;

    @property({
        tooltip:"每秒移动多少像素",
    })
    m_speed: number = 100;

    @property
    text: string = 'hello';

    m_xLeftEnd: number = 0;
    m_xRightEnd: number = 0;

    m_yPos: number = 0;

    @property({
        tooltip:"文字滚动的方向,1是从左到右,2是从右到左",
    })
    m_direction: number = Direction.LEFT_TO_RIGHT;



    start() {
        // init logic

        this.label.string = this.text;
        this.m_xRightEnd = this.node.x + this.maskNode.node.width * this.maskNode.node.anchorX;
        this.m_xLeftEnd = this.node.x - this.maskNode.node.width * this.maskNode.node.anchorX;

        let contentSize = this.label.node.getContentSize();
        
        let xPos:number = 0;
        if(this.m_direction === Direction.LEFT_TO_RIGHT){
            xPos = this.m_xLeftEnd - contentSize.width;
        }else{
            xPos = this.m_xRightEnd;
        }

        this.label.node.x = xPos;
        this.label.node.y = this.m_yPos;
    }

    update(dt) {
        if (this.m_direction === Direction.LEFT_TO_RIGHT) {
            let contentSize = this.label.node.getContentSize();
            if (this.label.node.x >= this.m_xRightEnd) { 
                this.label.node.x = this.m_xLeftEnd - contentSize.width;
            }

            this.label.node.x += this.m_speed * dt;
            
        }else{
            let contentSize = this.label.node.getContentSize();
            if (this.label.node.x <= this.m_xLeftEnd - contentSize.width) { 
                this.label.node.x = this.m_xRightEnd;
            }

            this.label.node.x -= this.m_speed * dt;
        }
    }
}

 

实用功能集锦,尽在https://github.com/CoderXZ/CocosCreatorDemo

结束语

我是小周,一名移动开发程序员。每天学习一点点,从小白到大牛,并非遥不可及。加油!

以上都是小周的个人观点,与大家一起分享学习,如有错误,还请指出,一起学习,一起进步!感谢你的关注!

 

 

 

Cocos creator面试常遇到问题 2.创建一个3d物体最好是一个面或者四方形因为这样才可以看出来效果。一.如果一个项目里面有200多个碰撞体,导致游戏卡钝,怎么解决.@1我们先要知道有哪些奖品,然后给他放到一个数组里面。1.先打开Cocos creatorIDE界面。四.跑马灯效果实现(3D)(仅供参考)四.通过玻璃可以点击到玻璃里面的物体。3.接着在项目资源中创建一个材质。 阅读详情

相关推荐

Cocos creator 使用 Vscode 2017

Cocos creator 使用 Vscode 2017一般方法 迄今为止,在开发组工作人员的努力工作下,Cocos  Creator编辑器不断完善,推出了新的1.8.0版本。目前,Cocos Creator内置的代码编辑器功能不完善,只适合快速浏览和做少量编辑的需要。对程序员来说,我们需要更成熟完善的代码编辑环境。所以已经被开发组抛弃了(众多开发者吐槽不好用)。 Visual Studio

忧桑该小绵羊 1万+

【cocos creator 跑马灯封装代码】

【cocos creator 跑马灯封装代码】

weixin_45105704的博客 612

关于 Cocos Creator

关于 Cocos Creator Q:Cocos Creator 是游戏引擎吗?A:它是一个完整的游戏开发解决方案,包含了轻量高效的跨平台游戏引擎,以及能让你更快速开发游戏所需要的各种图形界面工具。 Q:Cocos Creator 的编辑器是什么样的?A:完全为引擎定制打造,包含从设计、开发、预览、调试到发布的整个工作流所需的全功能一体化编辑器。 Q:我不会写程序,也能使...

ly_kent的博客 885

cocoscreator实现跑马灯 /滚动公告

几乎所有的游戏中 都会有这么一个功能。 来告诉玩家 有啥新鲜事发生了,有啥活动出台了等等 ,这个功能就是「跑马灯」。也就是 一个 「滚动的公告功能」 需求 实现一个 滚动的消息 ,从右往左循环展示。 实现思路 首先要让消息是移动的。肯定需要两个点。起始点和终点,当消息体位置到达终点时。重置消息题的 位置为起点位置,如此循环其次消息不能滚动到设定显示的范围外。所以需要一个遮罩 当 消息体某部分 到达终点位置时 隐藏该部分消息。可以用cocoscreator自带的 Mask组件实现 实操 1.界面结构如下图.

公众号 亮亮同学TT 1408

Cocos Creator引擎开发:Cocos Creator基础入门_实战项目:开发一个简单游戏

通过这个实战项目,你已经掌握了 Cocos Creator 的基本使用方法,包括游戏场景的创建、角色的控制、碰撞检测、分数系统和游戏结束逻辑的实现。希望你在开发过程中遇到了一些挑战,也学到了很多新的技能。如果你对 Cocos Creator 感兴趣,建议你继续学习更高级的教程和文档,探索更多的功能和技巧。Cocos Creator 是一个强大的游戏开发工具,能够帮助你开发出更加复杂和有趣的游戏。祝你在游戏开发的道路上越走越远!

chenlz2007的博客 2034

Test3(cocos creator + TypeScript 实现翻牌效果)

cocos creator + TypeScript 实现翻牌效果,本教程演示版本creator V2.07

cocos creator + TypeScript 实现跑马灯效果

目录1、引言2、实现过程2.1、场景制作2.2、代码实现2.3、效果展现3、结束语 1、引言   前面的篇幅我们给出了cocos的跑马灯实现思路,这里借助上一篇来用unity实现跑马灯效果,具体原理参照上一篇内容,这里是传送门跑马灯原理分析。 2、实现过程   具体实现包括以下步骤。 2.1、场景制作   这里的素材只需要一张图就可以了。这里我就不上传了,前一篇也有,需要的可以去前一篇拿去试一试。...

对酒当歌﹏✍ 4826

跑马灯抽奖和椭圆型滑动效果

cocos creator ,简单的实现了跑马灯抽奖和椭圆型滑动效果

Cocos Creator入门教学(全而简单版)

摘要:作者利用周末时间学习使用CocosCreator游戏引擎开发一款2D横板竞速游戏《战士勇敢向前冲》。文章详细记录了从引擎安装(选择2D模板)、界面介绍(层级/资源/场景编辑器等),到实现角色移动功能的全过程:导入自制角色素材,创建控制脚本绑定方向键操作,并通过代码实现像素级移动。作为国产开源引擎,CocosCreator支持中英文切换,适合新手入门2D/3D游戏开发。

前方的路在刚开始 9599

cocos跑马灯

支持 android界面文本和cocos显示跑马灯 帧率 与 显示器频率一致 60帧

跑马灯抽奖

JS跑马灯抽奖

Cocos Creator做一个简单的本地签到

效果图: 时间: 时间: 创建GameData全局类用来存储缓存 cc.GAMEDATA= cc.GAMEDATA || {}; //记录签到缓存 cc.GAMEDATA.setqiandao= function(tig){ cc.sys.localStorage.setItem("setqiandaotig",tig) } //得到是否可以签到 cc.GAME...

qq_40303068的博客 2436

转盘抽奖 cocos creator

转盘抽奖 cocos creator详情描述: https://www.jianshu.com/p/ff5d8e512d8f

用 Cocos Creator 做跑马灯效果!

●效果预览●使用说明简单的实现了功能,没有封装,如果有需要,可以参考代码,实现更多的功能,或者增加更多颜色文字内容的显示。● UI布局显示消息内容的节点,主要由:暗色背景、消息内容父...

一枚小工 1755

CocosCreator3.x实现游戏跑马灯全服游戏通知功能

CocosCreator3.x实现游戏跑马灯全服游戏通知功能 1、实现游戏跑马灯效果 2、支持新增消息自动显示播放并自动移除; 3、使用CocosCreator3.8.2目前最新引擎编写

尚硅谷Redis 7学习笔记

尚硅谷Redis 7学习笔记

不更了,主打一个陪伴 2万+

【免费下载】 Cocos Creator 特效包:为你的游戏增添视觉盛宴

Cocos Creator 特效包:为你的游戏增添视觉盛宴 【下载地址】ElasticSearch与MySQL搭配使用指南 ElasticSearch与MySQL搭配使用指南 项目地址: https://gitcode.com/o...

gitblog_09703的博客 1096

BMW Standard Tools 宝马FSC工具套装下载

这是一款非常专业的一套宝马编码工具,懂行的人自然知道他的用处,不懂行的人,我解释再多也不会明白的,需要的拿去吧。软件名:BMW Standard Tools包含工具:BMW Coding Tool v2.50、change Language、CIC Mafia、Dr.Gini B021、EasyConnect、EDIABAS Konfigurator v1.1、EDIABAS Konfigurator v2.0.0、FSC-Tools_2.18、FSTool_v2_CarServer、INPA、ITool

Zj_arrow的博客 6998

10分钟上手开心消消乐开发:Cocos Creator环境搭建与快速开始

开心消消乐是一款使用Cocos Creator开发的经典三消游戏,通过本文的快速指南,即使是新手也能在10分钟内完成开发环境搭建并运行项目,体验游戏开发的乐趣。 ## 一、准备工作:安装必要工具 ### 1.1 安装Cocos Creator 前往Cocos官网下载并安装最新版Cocos Creator,推荐使用v3.0以上版本以获得最佳兼容性。安装过程中保持默认设置即可,无需额外配置。 #

gitblog_01030的博客 1150

专栏二十:如何选择你的单细胞亚群的分辨率--ROGUE

ROGUE这是继chooseR后第二个计算单细胞亚群分辨率的内容,其实关于代码的运行很简单,网上已经有不少教程,重复这些就没意思了,这里主要是结合探讨一下这个算法。

m0_58549466的博客 981

Tiktok/抖音旋转验证码

主要记录一下旋转验证码的逆向思路

记录一些web逆向的过程 5968

Cocos Creator 教程:RichText 简单使用

有时游戏中要做一个广播公告,然后广播给所有的玩家。因为要突出用户信息与数字,如果还是cc.Label的话,就是太单调了,也没有突出重点。这时就要使用RichText了。 支持标签 注意:所有的 tag 名称必须是小写,且属性值是用=号赋值 名称 描述 示例 注意事项 color 指定字体渲染颜色,颜色值可以是内置颜色,比如 white,black 等,也可以使用 16 进制颜色...

Leo501的博客 5116

一周一个Unity小游戏2D反弹球游戏 - 球反弹的方向

本文将实现当球在球板上反弹时,会根据球板移动的方向来给球施加反弹的力,例如当球板往左移动时反弹球,则球应向左上方反弹,若球板往右移动时反弹球,则球应向右上方反弹。

Giver的博客 752
上一篇: 飞机大战-Cocos Creator 碰撞系统实践
下一篇: Unity打开工程报错
大头爱学习
博客等级 码龄7年 14粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值