【CocosCreator入门】CocosCreator组件学习 | Sprite(精灵)组件

       Cocos Creator 是一款流行的游戏开发引擎,具有丰富的组件和工具,其中 Sprite 组件是最常用的之一。Sprite 组件用于渲染 2D 图像,并提供了许多可配置的选项,如图像纹理、尺寸、位置、旋转等。在本文中,我们将深入探讨 Sprite 组件的技术实现和使用方法。


目录

一、组件介绍

二、属性介绍 

三、渲染模式 

四、实现方式

五、使用方法


一、组件介绍

        Sprite 组件是 Cocos Creator 引擎中最重要的组件之一,它控制着 2D 图像的显示。Sprite 组件可以直接添加到场景中,也可以作为其他组件的子节点添加,例如 Canvas 组件或者 Layout 组件。

        每个 Sprite 组件都需要指定一个 SpriteFrame 对象,这个对象包含了 2D 图像的纹理和其他信息,例如图像的大小、偏移量、旋转中心等。一个 SpriteFrame 对象可以通过资源面板中的 Texture 资源创建,也可以通过代码动态创建。

        除此之外,Sprite 组件还有很多其他的属性可以配置,例如透明度、颜色、缩放比例、对齐方式等。这些属性可以通过编辑器界面或者代码来设置,以满足不同的需求。

二、属性介绍 

图示:

属性功能说明
AtlasSprite 显示图片资源所属的Atlas图集资源。(Atlas 后面的 选择 按钮,该功能暂时不可用,我们会尽快优化)
Sprite Frame渲染 Sprite 使用的 Sprite Frame图片资源
Type渲染模式,包括普通(Simple)、九宫格(Sliced)、平铺(Tiled)、填充(Filled)和网格(Mesh)渲染五种模式
Size Mode指定 Sprite 的尺寸, Trimmed 表示会使用原始图片资源裁剪透明像素后的尺寸, Raw 表示会使用原始图片未经裁剪的尺寸, Custom 表示会使用自定义尺寸。当用户手动修改过 Size 属性后,Size Mode 会被自动设置为 Custom,除非再次指定为前两种尺寸
Trim勾选后将在渲染时去除原始图像周围的透明像素区域,该项仅在 Type 设置为 Simple 时生效
Src Blend Factor当前图像混合模式
Dst Blend Factor背景图像混合模式,和上面的属性共同作用,可以将前景和背景 Sprite 用不同的方式混合渲染

三、渲染模式 

Sprite 组件支持五种渲染模式:

  • 普通模式(Simple):根据原始图片资源渲染 Sprite,一般在这个模式下我们不会手动修改节点的尺寸,来保证场景中显示的图像和美术人员生产的图片比例一致。
  • 九宫格模式(Sliced):图像将被分割成九宫格,并按照一定规则进行缩放以适应可随意设置的尺寸(size)。通常用于 UI 元素,或将可以无限放大而不影响图像质量的图片制作成九宫格图来节省游戏资源空间。详细信息请阅读 使用 Sprite 编辑器制作九宫格图像 一节。
  • 平铺模式(Tiled):图像将会根据 Sprite 的尺寸重复平铺显示。如果 SpriteFrame 包含 九宫格配置,平铺时将保持周围宽度不变,而其余部分重复。
  • 填充模式(Filled):根据原点和填充模式的设置,按照一定的方向和比例绘制原始图片的一部分。经常用于进度条的动态展示。
  • 网格模式(Mesh):必须使用 TexturePacker 4.x 以上版本并且设置 ploygon 算法打包出的 plist 文件才能够使用该模式。

四、实现方式

        Sprite 组件的实现依赖于底层的渲染引擎,Cocos Creator 引擎底层使用的是 OpenGL ES 技术,因此 Sprite 组件的渲染方式也是基于 OpenGL ES 的。

        在渲染一个 Sprite 组件时,引擎首先会将 SpriteFrame 对象中的纹理加载到显存中,并生成一个纹理 ID。然后,引擎会根据 Sprite 组件的属性来生成一个矩形区域,并将该区域映射到纹理坐标系中。最后,引擎会通过 OpenGL ES 的 API 来绘制这个矩形区域,从而实现 Sprite 组件的渲染效果。

五、使用方法

        使用 Sprite 组件非常简单,只需要将 Sprite 组件拖放到场景中即可。然后,可以通过编辑器界面或者代码来修改 Sprite 组件的属性。

        例如,如果要更改 Sprite 组件的纹理,可以通过资源管理器面板中的 Texture 资源进行操作。如果要更改 Sprite 组件的位置、旋转或者缩放比例,可以直接在编辑器界面中进行调整。如果要通过代码来修改 Sprite 组件的属性,则需要使用 Cocos Creator 提供的 API 进行操作。

        下面是一个示例代码,展示如何通过代码来创建并设置一个 Sprite 组件的属性:

// 创建一个 SpriteFrame 对象
let spriteFrame = new cc.SpriteFrame();
spriteFrame.setTexture(texture);

// 创建一个 Sprite 组件并设置属性
let sprite = node.addComponent(cc.Sprite);
sprite.spriteFrame = spriteFrame;
sprite.node.position = cc.v2(100, 100);
sprite.node.scale = 2.0;

        在这个示例中,我们首先创建了一个 SpriteFrame 对象,并将其设置为纹理资源。然后,我们创建了一个 Node 节点,并向其中添加了一个 Sprite 组件。最后,我们通过代码来设置了 Sprite 组件的属性,包括 SpriteFrame 对象、位置和缩放比例。 


        Sprite 组件是 Cocos Creator 引擎中最重要的组件之一,它用于渲染 2D 图像。Sprite 组件的实现基于底层的 OpenGL ES 技术,可以通过编辑器界面或者代码来修改其属性。使用 Sprite 组件非常简单,只需要将其拖放到场景中并设置好属性即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/4332.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何成为一个优秀的产品经理?

通过本文您可以清楚地了解产品经理的角色和职责,教您如何摇身一变成为优秀的产品经理的技巧等。 一、什么是产品经理? 产品经理主要的职责在于确定客户需求、将产品或功能实现商业目标的最大化、将产品打造成最终成功的样子,并召集团队将这…

python接口自动化(二)--什么是接口测试、为什么要做接口测试(详解)

什么是接口测试 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。  一般来说,测试接…

【Qt】Qt单元测试详解(一):通过QtCreator创建测试工程

1、简述 Qt程序支持多种测试框架,其中QtCreator可以协助创建4种测试框架,分别是: Boost的测试框架——Boost.Test Google测试框架——GTest Qt测试框架——QTest Qt Quick测试框架——QtQuickTest其他框架需要自行创建:Catch2、CTest 2、QtCreator创建测试工程 2.1 创建…

jenkins+sonarqube+自动部署服务

一、jenkins 配置Pipeline 二、新建共享库执行脚本 共享库可以是一个普通的gitlab项目,目录结构如下 三、添加到共享库 Jenkins Dashboard–>系统管理–>系统配置–>Global Pipeline Libraries Name: 共享库名称,自定义即可; Defa…

从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类

我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。随着小卫星星座的普及,对地观测已具备多次以上的全球覆盖…

输出数组的长度-课后程序(JavaScript前端开发案例教程-黑马程序员编著-第3章-课后作业)

【案例3-5】输出数组的长度 一、案例描述 考核知识点 length()方法 练习目标 掌握length()方法获取数组长度。掌握数组的遍历。 需求分析 数组中保存五个学生的数学成绩,遍历数组分别获取每一个学生的数学成绩分数,用length()函数获取数组的长度。 案…

帝国CMS7.2/7.5火车头配置说明以及使用教程

一淘模板 56admin.com给大家写一个帝国cms火车头采集器配置的教程,由于录视频太麻烦,所以直接打字上图了,希望能帮助到小伙伴! 火车头简要来讲分为 3 个部分的配置:1、发布地址配置;2、文件保存地址与图片…

数据结构|AOE网活动的最早、最迟发生时间及关键路径问题

一些知识点: 整个活动的完成时间是AOE图中从始点到终点的最长路径的长度,这条路径称为关键路径。关键路径上的活动称作关键活动。 注意:关键路径不一定只有一条。 1.最早发生时间:从前往后,前驱结点到当前结点所需时…

SpringBoot使用详解

概念 Spring Boot的启动器实际上就是一个依赖。这个依赖中包含了整个这个技术的相关jar包,还包含了这个技术的自动配置,以前绝大多数XML配置都不需要配置了。 如果是Spring自己封装的启动器的artifact id名字满足:spring-boot-starter-xxxx&…

Java分布式锁面试题

1.为什么需要分布式锁? public synchronized void test() {System.out.println("获取到锁"); } public void test2() {synchronized (Test.class) {System.out.println("获取到锁");} }假设我们把上述代码部署到多台服务器上,这个互斥锁还能生…

BPI-R3开发板 - atf编译

一. 获取源码 https://github.com/mtk-openwrt/arm-trusted-firmware 二. 编译步骤 和编译uboot一样,编译环境为ubuntu 18.04。交叉编译工具链我用的是openwrt编译生成的工具链,并设置到环境变量,如下: export PATH$PATH:/root/mt…

【大屏设计方案】

大屏设计方案一、非等比放大(填充满整个屏幕)目的屏幕比例大小和设计稿的差的不多目的屏幕比例大小和设计稿的差很多二、等比放大(比如16:9)解决方案之后就可以用rem了,有两种便利的方式:也可以用media 根据不同的屏幕…

膳食真菌在癌症免疫治疗中的作用: 从肠道微生物群的角度

谷禾健康 癌症是一种恶性肿瘤,它可以发生在人体的任何部位,包括肺、乳房、结肠、胃、肝、宫颈等。根据世界卫生组织的数据,全球每年有超过1800万人被诊断出患有癌症,其中约有1000万人死于癌症。癌症已成为全球范围内的主要健康问题…

@LoadBalanced注解原理

1.概述 使用注解就像是在代码中加入了一段魔法,让我们轻而易举的就实现了至关重要的功能。 就像LoadBalanced一样,将该注解使用在RestTemplate的Bean上,就可以实现负载均衡,就像下面这段代码: Configuration public…

新手UI设计师必读:火爆海外设计圈的设计资源!

Hello,各位好! 作为一名新手UI设计师,你是否无法完全搞清楚某些UI设计的基本原则和概念?你是否为使用哪款设计软件来开启你的设计之路而困扰?你是否想要在线学习设计排版、色彩搭配、形状和线条设计? 今天这…

rabbitMQ的详细介绍

1.概述 RabbitMQ是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑RabbitMQ是一个快递站,一个快递员…

实验记录项目

1. 关于语谱图的通道的均值与方差 2023年 03月 27日 星期一 10:10:22 CST 使用tqwt 对每一份音频进行分解: 每份音频得到三个分量, cA分量: 近似分量,用于表征低频部分; cD分量: 高频分量,  res 剩余分量: 1.1 问题: 对每个分量使用如下变换,  使用Mel,  Shar…

SQL面试必会50题

引用: 视频讲解:https://www.bilibili.com/video/BV1q4411G7Lw/ SQL面试必会50题: https://zhuanlan.zhihu.com/p/43289968 图解SQL面试题:经典50题:https://zhuanlan.zhihu.com/p/38354000 其中重点为:1/2…

ChatGLM本地部署应用的实战方案

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

系统分析师每日练习错题知识点2

嵌入式系统---多核cpu 多核是多微处理器核的简称,是将两个或更多的独立处理器封装在一起,集成在一个电路中。多核处理器是单枚芯片(也称为硅核),能够直接插入单一的处理器插槽中,但操作系统会利用所有相关…