Egret学习笔记 (Egret打飞机-3.实现背景循环滚动)

简介: Egret学习笔记 (Egret打飞机-3.实现背景循环滚动)

游戏背景里面的猪脚飞机看起来是一直在向前飞,但是实际上只是一个视觉差而已。

猪脚是出于不动的状态,背景从上到下滚动,然后让玩家觉得飞机在不停的往前飞。(当然这只是其中一种实现思路)

差不多就是这样,然后两张图片一直滚动,上面的图,滚动到最底下,马上又跑到最上面去,一直循环,就有了一个滚动的效果

然后我导入了一张背景图

然后重新打开我们的BgContent.ts文件,把里面的黑色背景的代码×掉,然后改为

        bgbitmap1: egret.Bitmap;
  bgbitmap2: egret.Bitmap;
  public Init(): void {
    var bg = RES.getRes("background_png");
    this.bgbitmap1 = new egret.Bitmap(bg);
    this.bgbitmap1.width = GameConfig.SceneW;
    this.bgbitmap1.height = GameConfig.SceneH;
    this.addChild(this.bgbitmap1)
    this.bgbitmap2 = new egret.Bitmap(bg);
    this.bgbitmap2.width = GameConfig.SceneW;
    this.bgbitmap2.height = GameConfig.SceneH;
    this.addChild(this.bgbitmap2)
  }

-走到这一步,点击运行,可以看到屏幕背景成为了上边的那个背景图,然后,我们再来实现背景滚动

-首先我们先监听一下帧事件,在图片添加完成后监听

this.addEventListener(egret.Event.ENTER_FRAME,()=>{
  },this)

-设置两张图片的位置,一张恰好显示到屏幕,一张就放到屏幕的上方,坐标为X为0Y为(0-屏幕的高度)

this.bgbitmap1.x = 0;
    this.bgbitmap1.y = 0;
    this.bgbitmap2.x = 0;
    this.bgbitmap2.y = - GameConfig.SceneH;

-然后我们开始我们的背景滚动,在ENTER_FRAME事件里面,我们每一帧都移动一下背景图的坐标,然后背景图的坐标高于屏幕的坐标,那么就把图的坐标移动到(0,0-屏幕高度)的位置

this.bgbitmap1.y += this.bgSpeed;
      if (this.bgbitmap1.y > GameConfig.SceneH) {
        this.bgbitmap1.y = (0 - GameConfig.SceneH)
      }
      this.bgbitmap2.y += this.bgSpeed;
      if (this.bgbitmap2.y > GameConfig.SceneH) {
        this.bgbitmap2.y = (0 - GameConfig.SceneH)
      }

然后点击运行,就可以看到如下的效果了

运行是能运行了,但是好像有一条碍眼的线偶尔会横着。。。我找了半天也不知道啥原因。。

最后我把背景图的高度设置长点。。。好像就没这个问题了

var bg = RES.getRes("background_png");
    this.bgbitmap1 = new egret.Bitmap(bg);
    this.bgbitmap1.width = GameConfig.SceneW;
    this.bgbitmap1.height = GameConfig.SceneH+10;
    this.addChild(this.bgbitmap1)
    this.bgbitmap2 = new egret.Bitmap(bg);
    this.bgbitmap2.width = GameConfig.SceneW;
    this.bgbitmap2.height = GameConfig.SceneH;
    this.addChild(this.bgbitmap2)
    this.bgbitmap1.x = 0;
    this.bgbitmap1.y = 0;
    this.bgbitmap2.x = 0;
    this.bgbitmap2.y = - GameConfig.SceneH+10;
C 复制 全屏


目录
相关文章
|
负载均衡 Linux 网络协议
面向C10M时代的MiddleBox之 - 高性能四层负载均衡设备AGW
面对需求的不断提高,几年前我们还在为解决C10K 问题而努力,现在已经开始面临C10M 问题的挑战。
1990 0
|
9月前
|
存储 网络协议 Linux
第七问:你了解大端和小端字节序吗?
大端和小端是计算机中数据存储的两种字节序方式。大端(Big Endian)将高位字节存储在低地址,小端(Little Endian)将低位字节存储在低地址。大端主要用于网络通信和某些文件格式,确保数据传输的一致性;小端广泛应用于本地计算和硬件优化,提高处理速度。现代大多数 PC 和嵌入式设备使用小端字节序,如 x86 和 ARM 架构。
1577 0
|
3月前
|
存储 安全 Java
Java 集合面试题从数据结构到 HashMap 源码剖析详解及长尾考点梳理
本文深入解析Java集合框架,涵盖基础概念、常见集合类型及HashMap的底层数据结构与源码实现。从Collection、Map到Iterator接口,逐一剖析其特性与应用场景。重点解读HashMap在JDK1.7与1.8中的数据结构演变,包括数组+链表+红黑树优化,以及put方法和扩容机制的实现细节。结合订单管理与用户权限管理等实际案例,展示集合框架的应用价值,助你全面掌握相关知识,轻松应对面试与开发需求。
190 3
|
11月前
|
资源调度 JavaScript
vue-element-admin 综合开发三:header组件的实现、vuex的使用、main组件(home页面)的实现
这篇文章介绍了如何实现一个Vue.js项目中的header组件,使用Vuex进行状态管理,以及创建一个main组件(home页面),并讨论了一些开发中遇到的bug。
358 0
|
消息中间件 前端开发 Java
面试官:SpringCloudGateway过滤器类型有哪些?
面试官:SpringCloudGateway过滤器类型有哪些?
174 1
|
存储 Web App开发 JSON
存储界的cookie、本地存储、会话存储
存储界的cookie、本地存储、会话存储
426 1
|
缓存 监控 算法
Linux内核的SLAB内存管理机制
Linux内核的SLAB内存管理机制
824 4
|
开发工具 git
Git:error: remote origin already exists
Git:error: remote origin already exists
342 2
|
弹性计算 大数据 测试技术
2024年阿里云服务器价格配置表汇总(轻量服务器、ECS服务器、游戏服务器、GPU服务器)
今天整理了阿里云服务器价格,包含了阿里云轻量应用服务器、阿里云ECS云服务器、阿里云游戏服务器、阿里云GPU云服务器。阿里云服务器租用费用,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核4G服务器30元3个月,幻兽帕鲁4核16G和8核32G服务器配置,云服务器ECS可以选择经济型e实例、通用算力u1实例、ECS计算型c7、通用型g7、c8i、g8i等企业级实例规格。
1124 0
|
JavaScript Java
el标签
el标签
1042 0