creator图片循环显示_CocosCreator 多块地图无限无缝滚动 组件

2023-11-18

地图滚动出现的原因

export enum DIRECTION{

LEFT = 1,

RIGHT = 2,

UP = 3,

DOWN = 4,

};

/**

* 多块地图滚动组件

*/

const {ccclass, property} = cc._decorator;

@ccclass

export default class ScrollThroughMultipleMaps extends cc.Component {

@property([cc.Node])

NodeList: cc.Node[] = [];

@property(cc.Integer)

speed: number = 50;

@property({tooltip: "1: 表示 LEFT; 2: 表示 RIGHT;

3 表示 UP; 4 表示: DOWN"})

direction: DIRECTION = DIRECTION.DOWN;

headPos: cc.Vec2;

footPos: cc.Vec2;

headLimit: number = 0;

footLimit: number = 0;

isRun: boolean = false;

start () {

this.headPos = this.NodeList[0].getPosition();

this.footPos = this.NodeList[this.NodeList.length -1].getPosition();

switch(this.direction) {

case DIRECTION.LEFT: {

this.headLimit =this.headPos.x - this.NodeList[0].getContentSize().width;

this.footLimit =this.footPos.x;

break;

}

case DIRECTION.RIGHT: {

this.headLimit =this.headPos.x + this.NodeList[0].getContentSize().width;

this.footLimit =this.footPos.x;

break;

}

case DIRECTION.DOWN: {

this.headLimit = this.headPos.y - this.NodeList[0].getContentSize().height;

this.footLimit = this.footPos.y;

break;

}

case DIRECTION.UP: {

this.headLimit = this.headPos.y + this.NodeList[0].getContentSize().height;

this.footLimit = this.footPos.y;

}

}

this.isRun = true;

}

checkMoveLeftAllPos() {

if (this.NodeList[0].x < this.headLimit) {

var offset = this.footLimit - this.NodeList[this.NodeList.length -1].x - this.NodeList[this.NodeList.length -1].width;

this.NodeList[0].x = this.footLimit - offset;

this.NodeList.push(this.NodeList.splice(0, 1)[0]);

}

}

checkMoveRightAllPos() {

if (this.NodeList[0].x > this.headLimit) {

var offset = this.NodeList[this.NodeList.length -1].x - this.footLimit - this.NodeList[this.NodeList.length -1].width;

this.NodeList[0].x = this.footLimit + offset;

this.NodeList.push(this.NodeList.splice(0, 1)[0]);

}

}

checkMoveDownAllPos() {

if (this.NodeList[0].y < this.headLimit) {

var offset = this.footLimit - this.NodeList[this.NodeList.length -1].y - this.NodeList[this.NodeList.length -1].height;

this.NodeList[0].y = this.footLimit - offset;

this.NodeList.push(this.NodeList.splice(0, 1)[0]);

}

}

checkMoveUPAllPos() {

if (this.NodeList[0].y > this.headLimit) {

var offset = this.NodeList[this.NodeList.length -1].y - this.footLimit - this.NodeList[this.NodeList.length -1].height;

this.NodeList[0].y = this.footLimit + offset;

this.NodeList.push(this.NodeList.splice(0, 1)[0]);

}

}

update (dt) {

if (!this.isRun) return;

switch(this.direction) {

case DIRECTION.LEFT: {

for (let i = this.NodeList.length -1; i >= 0; i--) {

this.NodeList[i].x -= dt* this.speed;

}

this.checkMoveLeftAllPos();

break;

}

case DIRECTION.RIGHT: {

for (let i = this.NodeList.length -1; i >= 0; i--) {

this.NodeList[i].x += dt* this.speed;

}

this.checkMoveRightAllPos();

break;

}

case DIRECTION.DOWN: {

for (let i = this.NodeList.length -1; i >= 0; i--) {

this.NodeList[i].y -= dt* this.speed;

}

this.checkMoveDownAllPos();

break;

}

case DIRECTION.UP: {

for (let i = this.NodeList.length -1; i >= 0; i--) {

this.NodeList[i].y += dt* this.speed;

}

this.checkMoveUPAllPos();

break;

}

}

}

}

关注【游戏讲坛】微信公众号,获取最新动态!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

creator图片循环显示_CocosCreator 多块地图无限无缝滚动 组件 的相关文章

  • 【Linux基础】stat函数

    stat函数 函数描述 获取文件属性 函数原型 include
  • iOS开发之数据存取(一)——SQLite

    概览 在iOS开发中数据存储的方式可以归纳为两类 一类是存储为文件 另一类是存储到数据库 例如前面IOS开发系列 Objective C之Foundation框架的文章中提到归档 plist文件存储 包括偏好设置其本质都是存储为文件 只是说
  • 计算机答卷方式 闭卷满分为90分,关于《计算机应用技术专业综合理论》考试说明.doc...

    计算机应用技术专业综合理论 考试大纲 一 考试性质 广东省高等职业院校对口自主招生考试是以中等职业技术学校对口专业应届毕业生和中等职业相关专业毕业 有两年以上实践经验的社会人员为对象的选拔性考试 二 考试内容 计算机应用技术专业综合理论 的
  • IDEA jdk 下载安装及项目中的配置

    进入 Oracle官网 的 Java 界面 Oracle官网地址 https www oracle com java 1 JDK下载 1 1 在网站页面滚动鼠标下拉定位到Java 选择Oracle JDK 1 2 选择Java archiv
  • Xcode警告、错误解决方法总结

    从sdk3 2 5升级到sdk 7 1中间废弃了很多的方法 还有一些逻辑关系更加严谨了 1 警告 xoxoxoxo is deprecated 解决办法 查看xoxoxoxo的这个方法的文档 替换掉这个方法即可 2 警告 Declarati
  • excel函数去重_Excel去除重复值方法汇总

    经常有人问到excel中去除重复值的问题 这个问题本来也一直有很多人讨论 现将做法汇总出来共大家参考 什么是重复值 顾名思义 重复值是指一组数据中有重复记录 去除这些重复的记录就叫去除重复值 具体有两种情况 源数据如图 去重后 结果一 所有
  • 蓝桥杯青少组python:第十三届省赛第一场

    选择题 1 下列二进制中最大数是 A 110 B 1010 C 1100 D 1001 2 以下方法 不是对文件读操作的是 A readline B readlines C readtext D read 3 以下对turtle库中函数描述
  • read_csv 与 to_csv方法

    1 read csv方法 1 1 返回数据类型 DataFrame 二维标记数据结构 列可以是不同的数据类型 是最常用的pandas对象 如同Series对象一样接受多种输入 lists dicts Series DataFrame Ser
  • JavaScript this关键字的理解

    JavaScript this 关键字的理解 仅供个人学习做笔记使用 大佬轻喷 1 全局环境直接输出this指向全局对象 console log this 2 全局函数输出this指向window 全局函数其实是window 全局对象 的方
  • 按键板的原理和实现--基于GPIO的按键板

    按键板的原理和实现 基于GPIO的按键板 上篇介绍简单的ADC实现 需要IC提供一个额外的ADC 但出于IC成本的考虑 无法提供这个的ADC时 但提供了多个额外的GPIO General Purpose Input Output 双向的 可
  • Windows平台下MingGW的网络socket编程模型

    Windows平台下MingGW的网络socket编程模型 1 TCP服务器 include
  • NSSCTF web题记录

    目录 web GXYCTF 2019 BabyUpload htaccess利用 NISACTF 2022 babyserialize pop链 NISACTF 2022 popchains pop链 NSSRound 4 SWPU 1zw
  • Linux删除文件每一行的首尾空格等操作——sed简明教程

    cat tmp txt 123456789 123456789 123456789 删除每行第一个字符 sed s tmp txt 23456789 23456789 23456789 删除每行前两个字符 并保存到tmp2 txt sed
  • Java秒杀系统方案优化 2 --第2章 实现用户登录以及分布式session功能

    第2章 实现用户登录以及分布式session功能 1 明文密码两次md5入库 分别使用签名如1a2b3c4d 分别用签名和密码使用MD5加密两次后 一次是最原始密码加密 一次是加密后再使用MD5和签名加密 才存入数据库 每个用户对应都有一个
  • Dynamics 365 DevOps CI/CD之Solution

    CI CD到了Soution就没太多可说的了 按部就班配置就行 我选择的工具是Power DevOps Tool 1 首先下载工具 然后设置连接字符串去连环境 连接字符串还是用ClientSecret的形式 2 当然导出前还是要发布下自定义
  • Ue4蓝图访问外部接口

    首先我们搭建一个服务 node express 注意电脑必须安装node mkdir test server cd test server npm init npm install express body parser chalk pat
  • 数组复制的三种方法(超详细)

    数组复制的三种方法 Arrays类 copyOf 方法 copyOfRangs 方法 System类 arraycopy Arrays类 copyOf 方法 copyOf 方法适用于从下标0开始 复制指定长度的元素到目标数组 源码如下 pu
  • jQuery实现下拉菜单[代码+详细讲解+效果图]

    文章目录 前言 一 案例功能描述 二 html代码讲解 三 css代码讲解 四 jQuery实现功能及代码讲解 五 效果图 总结 前言 下拉菜单也是每个网页基本都会用到的案例 所以知识点还是要我们掌握的 这个案例比较简单 主要还是我们的jQ
  • 基于ftp协议的文件变化主动监听

    基于ftp协议的文件变化主动监听 前言 实现思路 代码实现思路 具体代码实现 依赖引入 FTPService接口 FTPServiceImpl类 FileChangeEvent接口 FileChangeData实体类 FileChangeT

随机推荐

  • linux 命令行与shell脚本编程大全

    linux 命令行与shell脚本编程大全 第一章 Linux LiveCD就是从cd读取的系统 由于没法将数据写入到cd 所以一旦重启 之前操作过后的一切数据都会丢失 第二章 第三章 1 man手册使用快捷键 使用空格键翻页 2 man
  • linux(centos) cpu核心数信息汇总

    总核数 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 查看物理CPU个数 cat proc cpuinfo grep physical id sort uniq wc l
  • 【论文速递】ECCV2022 - ByteTrack:通过关联每个检测盒来进行多对象跟踪

    论文速递 ECCV2022 ByteTrack 通过关联每个检测盒来进行多对象跟踪 论文原文 ByteTrack Multi Object Tracking by Associating Every Detection Box 论文地址 h
  • macos安装zsh

    https www cnblogs com xuLessReigns p 11005435 html mac下安装autojump brew install autojump 1 安装zsh 执行 sh c curl fsSL https
  • 端口扫描工具-Nmap

    Nmap是一款功能强大 功能丰富的网络扫描工具 对于网络管理员和安全专业人员来说 是一个非常有用的工具 并且被广泛应用于安全审计 网络调查 漏洞搜寻等领域 能扫描主机的端口 查看端口是否开放 端口的服务是什么 端口扫描不但可以为黑客所利用
  • 深入理解mysqldump原理 --single-transaction --lock-all-tables --master-data

    在mysqldump过程中 之前其实一直不是很理解为什么加了 single transaction就能保证innodb的数据是完全一致的 而myisam引擎无法保证 必须加 lock all tables 前段时间抽空详细地查看了整个mys
  • 宝塔linux ssh没发启用,宝塔终端面板连接SSH服务失败解决方案

    最近更新了宝塔面板的版本后 通过宝塔SSH终端 1 0工具链接时出现了SSH服务失败的问题 尝试使用云平台的SSH和XSHELL之类的工具都可以正常链接 可以排除是SSH端口或是设置错误造成的故障 通过翻看宝塔官方论坛 找到了大炮运维V58
  • PageHelper分页插件出现的异常:check the your MySQL server version for the right syntax to use near ‘LIMIT 5‘

    1 使用PageHelper分页插件时 编写测试方法 运行并测试时出现如下异常 Cause com mysql jdbc exceptions jdbc4 MySQLSyntaxErrorException You have an erro
  • [ERROR NumCPU]: the number of available CPUs 1 is less than the required 2

    出现上述错误的原因 因为物理机或者虚拟机不满足Kubernetes的基础配置造成的 而Kubernetes对GPU要求至少是2核 2G内存 W0123 08 22 23 322562 12102 validation go 28 Canno
  • 做编程题没有思路怎么办

    来信 老师您好 我是一名计算机专业大二的学生 我现在在做一系列c语言竞赛一些容易的题目 可是我发现我碰到的问题会很没有思路 不知道方向 看见网上的很多同学都能够解决 而我却不能 我不知道自己差到哪了 我不知道怎么办才好 都有很多中学生的水平
  • macOS 12 Monterey:一次全新的跨设备协作体验

    macOS 12 Monterey是苹果公司的一次重大突破 它打破了设备间的壁垒 将不同设备无缝地连接在一起 极大地提升了用户的工作效率和娱乐体验 Monterey带来了通用控制 AirPlay 捷径等新功能 以及一些实用的新小功能 安装
  • 本地项目放到服务器启动不了,spring boot在本地能启动,放服务器上就不行,

    写完代码 放到服务器上去发现启动不了 服务器的tomcat没有问题 因为上面已经有两个项目在跑 报错内容 百度过了 百度上都说是server api的问题 但是我没有引入这个包 被逼无奈才来这里请教的 java util concurren
  • 25_pre_content 阶段 mirror 模块

    文章目录 precontent 阶段的 mirror 模块 示例配置 precontent 阶段的 mirror 模块 作用 实时拷贝流量 处理请求时 生成子请求访问其他服务 对子请求的返回值不做处理 ngx http mirror mod
  • 调用接口登录禅道_Java调用禅道api接口查询以及创建任务(傻瓜式复制粘贴--旗舰版禅道页面调用)

    背景 系统需要调用禅道的接口进行工单的创建 并对工单进行附件上传等信息的操作 禅道接口为http接口 每次请求都需要带上zentaosid进行请求 由于专业版禅道升级为旗舰版禅道版本变更 请求的URL有所变化 变化最大为常量类配置 如下 实
  • Set集合

    目录 一 Set集合的特点 二 Set集合取值 三 常用实现类HashSet和TreeSet 四 Comparable和Comparator的使用 4 1 Comparable 4 2 Comparator 五 LinkedHashSet
  • HTML5本地存储

    1 背景 在HTML4 01中 想要在浏览器中存储用户的数据时 我们一般只能用Cookie来实现 不过Cookie有很多限制 大小限制 最大4KB 数量限制 每个站点只允许存储20个Cookie 如果想要存储更多Cookie 则要把旧的Co
  • 【数组中数字出现的次数-有限状态自动机】

    数组中数字出现的次数 一 有限状态自动机解法 二 一般解法 想必大家对数组中数字出现的次数的这种题并不少见 主要有三种 1 找出数组中只出现一次的数字 其他数字出现两次 2 找出数组中仅有的两个仅出现一次的数字 其他数字出现两次 3 找出数
  • 互联网摸鱼日报(2022-12-07)

    互联网摸鱼日报 2022 12 07 InfoQ 热门话题 Solo推出完全集成的云原生应用程序网络平台 经历过亿级DAU的打磨检验 抖音同款RTC到底有何魔力 性能提升 2 5 倍 字节开源高性能 C JSON 库 sonic cpp 最
  • 讲一下进程地址空间

    进程地址空间是指每个进程在计算机内存中所占用的地址空间 地址空间是指能被访问的内存地址范围 它由若干个连续的内存块组成 每个进程都有自己的地址空间 这意味着每个进程都有自己的内存地址范围 不会与其他进程冲突 进程地址空间通常被划分为几个部分
  • creator图片循环显示_CocosCreator 多块地图无限无缝滚动 组件

    地图滚动出现的原因 export enum DIRECTION LEFT 1 RIGHT 2 UP 3 DOWN 4 多块地图滚动组件 const ccclass property cc decorator ccclass export d