creator图片循环显示_CocosCreator背景图循环播放

以前在玩小游戏的时候发现有的小游戏背景图一直再动,视觉效果挺好,给人一种炫炫的感觉,让我这写后台的码农很是羡慕和膜拜。没想到天意弄人,我也开始写游戏前端了刚接触CocosCreator,好多东西都不懂,整个懵逼状态,然后只能硬着头皮上来写,其实写代码思路还是有的,就是api和工具用起来有点陌生。这不,下午有个前端大佬让我弄个游戏背景图循环播放功能,说是游戏里会用到,然后就撸起袖子开干了。

大致思路:

1. 既然是至少轮播得有两张图吧

2. 轮播是肯定是要修改坐标的,横播就是改X坐标,竖播就是改y坐标

3. 循环播就是一张播放完毕,得重新修改它的坐标等待下次播放

算了,直接点还是直接来代码吧。

在资源管理器新建一个TypeScript文件,重命名为Game,然后把Game文件拖到层级管理器的Cavas下面。Game内容如下:

const {ccclass, property} = cc._decorator;

@ccclass

export default class Game extends cc.Component {

@property({displayName: '播放速度'})

speed: number = 0; // 移动时控制速度的变量

@property({displayName: '播放方向0横1竖'})

orient: number = 0;// 0横 1竖

@property( {displayName: '背景图', type: cc.Node})

bgArr: cc.Node[] = []; // 用于管理背景图片结点的数组,记得回cocos面板中添加数组的结点数量

curBg: cc.Node = null;// 当前播放背景

nextBg: cc.Node = null;// 即将播放背景

curIndex: number = 0;// 当前播放背景索引

xy:string = 'x';// x | y

wh:string = 'w';// 宽高

// 是否可以播放

move:boolean = true;

start () {

if (this.bgArr.length == 0) {

this.move = false;

return;

}

// 如果只有一张背景图,则克隆一个

if (this.bgArr.length == 1) {

this.bgArr[1] = cc.instantiate(this.bgArr[0]);

this.bgArr[0].parent.addChild(this.bgArr[1]);

}

this.xy = this.orient == 0 ? 'x' : 'y';

this.wh = this.orient == 0 ? 'width' : 'height';

this.curBg = this.bgArr[this.curIndex];

this.nextBg = this.bgArr[this.curIndex + 1];

// 设置背景图坐标

this.setBgPosition();

}

/**

* 设置背景图坐标

*/

setBgPosition () {

this.bgArr[this.curIndex][this.xy] = 0;

this.bgArr[this.curIndex + 1][this.xy] = - (this.curBg[this.wh] / 2 + this.nextBg[this.wh] / 2);

}

update (dt) {

this.bgMove();

}

/**

*

* @param bgList

* @param speed 速度

*/

bgMove() {

if (this.move) {

this.curBg[this.xy] += this.speed;

this.nextBg[this.xy] += this.speed;

// 当前背景图已播放完

if(this.curBg[this.xy] >= this.curBg[this.wh]) {

this.curBg = this.nextBg;

this.nextBg = this.bgArr[this.curIndex ++ % this.bgArr.length];

this.nextBg[this.xy] = this.curBg[this.xy] - this.curBg[this.wh] / 2 - this.nextBg[this.wh] / 2;

}

}

}

}

把要播放的背景图拖入层级管理器的Cavas下面,坐标设置如下图

给Game脚本属性赋值(把背景图拖入进来),如图

以上就是CocosCreator实现轮播图的一个思路。代码获取

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完全卸载oracle11g步骤

1、 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务。2、 开始->程序->Oracle - OraHome81->Oracl…

PyCharm安装开发游戏的Pygame

方式一:利用PyCharm导入Pygame包 通常情况下,Pygame可以通过Pycharm的单击菜单File-->Settings...,弹出Settings窗口,在左侧栏中选择Project ***(此处***是你的当前项目名)-->Project Interpreter&a…

Jsp-Servlet 概要总结[转]

Servlet三个要素: 1.必须继承自HttpServlet 2.必须实现doGet()或者doPost() 3.必须在web.xml中配置Servlet <servlet> <servlet-name> </servlet-name> <servlet-class> </servlet-class> </servlet><servlet-mapping> <servlet-…

php函数学习二

rename():修改文件的名字 addcslashes(&#xff09;&#xff1a;过滤用户提交的敏感字符&#xff0c;一般通过转义提高安全性 dechex():把十进制数据转化为十六进制数据 Abs: 取得绝对值。 Acos: 取得反余弦值。 ada_afetch: 取得资料库的传回列。 ada_autocommit: 开关自动更…

sybase数据库导出mysql_使用BCP从Sybase远程数据库中导出数据

1.在本机安装Sybase ASE 15&#xff0c;我装的开发版全套&#xff0c;懒得去仔细看需要哪个了2.在Sybase安装目录里找到ini\sql.ini&#xff0c;在里面添加数据源例如&#xff1a;[MYDS]masterNLWNSCK,192.168.1.201,5000queryNLWNSCK,192.168.1.201,5000其中MYDS是数据源名称&…

Web项目,要求:保存用户名和密码在Cookie中,下次登录不再重新输入

设计一个实现登录功能的Web项目&#xff0c;要求&#xff1a;保存用户名和密码在Cookie中&#xff0c;下次登录不再重新输入 var cookie {};//设置 cookie.SetCookiesfunction(name,value,exptime){ try{ if(arguments.length 2) return arguments.callee(…

Pycharm使用black作为Python代码格式化外部工具

Pycharm菜单Code->Reformat Code能对Python代码进行格式化&#xff0c;但是black能进一步规范格式&#xff0c;它是PEP8的严格子集。 本次操作的相关环境信息如下&#xff1a;Pycharm 2018版&#xff0c;Python3.6,&#xff08;注意&#xff0c;写本文时的black只支持在Pyt…

WCF的学习资源

这一两天开始学习WCF&#xff0c;两天前我对WCF一无所知&#xff0c;现在也所知甚少&#xff0c;不过倒是在网上找到了一些学习WCF的不错的资源&#xff0c;在这里收录整理如下&#xff1a;1、http://www.cnblogs.com/jillzhang/tag/WCF/博主张玉彬&#xff0c;其对分布式应用程…

python --函数

转http://www.cnblogs.com/vamei/archive/2012/06/01/2529500.html 函数最重要的目的是方便我们重复使用相同的一段程序。 将一些操作隶属于一个函数&#xff0c;以后你想实现相同的操作的时候&#xff0c;只用调用函数名就可以&#xff0c;而不需要重复敲所有的语句。 函数的定…

mysql slave 线程 简书_【MySQL】你真的读懂了slave status吗?

前言:大家平时在检查主从复制的时候基本上都会使用 show slave status来看主从复制的情况&#xff0c;那么你真的读懂每个指标项了吗&#xff1f;一、status指标解读rootlocalhost [(none)]>show slave status\GERROR 2006 (HY000): MySQL server has gone awayNo connectio…

Python中用input()和print()体现输入输出重定向

众所周知&#xff0c;在Python中&#xff0c; 语句&#xff1a;变量input() 的功能是&#xff1a;从键盘读取数据到内存变量&#xff0c;此过程为输入。此时&#xff0c;键盘为标准输入设备&#xff0c;对应的文件对象名为sys.stdin。 语句&#xff1a;input(变量) 的功能是&…

【DI专题】在 DI 脚本文件中调用存储过程

以前用过&#xff0c;但是隔很久不用&#xff0c;还是会有点忘记&#xff0c;还是记下来吧&#xff1a;&#xff09; 1.在左侧datastore区域&#xff0c;选择数据库&#xff0c;选择 Function,单击右键&#xff0c;选择 import by name; 2.在弹出对话框中&#xff0c;输入待导入…

国外网站设计欣赏:30个优秀的国外咖啡网站设计

梦想天空博客向大家分享各种类型的优秀网站作品&#xff0c;有电子商务网站设计、旅游网站设计、餐馆网站设计、设计工作室网站设计、大学网站设计以及各种色系&#xff0c;各种风格的网站设计作品。今天这篇文章给大家带来30个优秀的国外咖啡网站设计作品&#xff0c;一起欣赏…

mysql查询连续3个月以上_MySQL查询显示连续的结果

#mysql中 对于查询结果只显示n条连续行的问题#在领扣上碰到的一个题目:求满足条件的连续3行结果的显示x city built a new stadium, each day many people visit it and the stats are saved as these columns: id, date, people&#xff1b;please write a query to display t…

对已有文件进行既读又写的操作时关于文件位置注意事项(适用于Python和C/C++)

当我们需要对现有文件进行读取数据并修改文件中的数据时&#xff0c;就需要用到对已有文件进行既读又写的操作。有多种可读且可写的文件打开方式&#xff1a;r,w,a,rb,wb,ab&#xff0c;具体含义见下表。 打开 方式 读写 特性 文件数据 特性 对文件存在性的处理方式 备注 …

[原]JS ajax类的三种封装形式及简单对比

三种形式&#xff1a;1 function(para1,para2,...)2 function()在里面定义prototype&#xff0c;每次调用前先new一下3 类似于JSON的方式JSON的形式&#xff0c;定义出来的相当于静态类&#xff0c;用for循环&#xff0c;做20次调用&#xff0c; 第一种形式 返回了20个结果。第…

Quaruts II 增量编译

http://bbs.ednchina.com/BLOG_ARTICLE_3007977.HTM http://quartushelp.altera.com/11.1/mergedProjects/msgs/msgs/esgn_tri_state_partition.htm 增量编译主要有两个工具&#xff1a;Design Partition和Logiclock Design Partition只是将设计进行“逻辑分区”&#xff0c;直…

python中变量名存储在哪里_python – 如何在内部存储和映射变量名称?

I think at a high level it can be done with a dict, where the key is the variable name (str?) and the value is the reference that it’s associated with.这也是它内部工作的方式.在CPython中,变量名和它们指向的对象通常存储在Python字典中;编写Python代码时可以使用…

【译】CodeIgniter HMVC模块扩展使用文档

CodeIgniter HMVC扩展说明 原文地址&#xff1a;Modular Extensions - HMVC 模块扩展——HMVC 模块扩展让CodeIgniter框架模块化。模块是一组独立的组件&#xff08;通常有模型、控制器和视图&#xff09;&#xff0c;它们被分类在应用模块的子文件夹中&#xff0c;并且能够直接…

Python嵌套列表解析式(又称列表推导式)写法剖析与应用举例

#嵌套列表解析式又称嵌套列表推导式&#xff0c;功能非常强大&#xff0c;但是初学者难以摸清其书写规则。 #以下实例展示了嵌套列表解析的写法。 #嵌套列表解析表达是的书写规则是层层嵌套。 #嵌套层的一般形式为&#xff1a;for outter in inner。根据需要解析的嵌套层次深度…