Egret社区
1银子
大神们好,我想实现一个效果类似打飞机的效果就,就是有一个背景图bg1,然后希望他能不断下滑,飞机感觉就好像往前飞一样。所以我做了一个算法,复制了一个bg2,然后代码如下:

//背景滚动
        if( this.bg1.height - this.bg1.y <=0 ){
            this.bg1.y = -(this.bg2.y + this.bg2.height);
        }

        if( this.bg2.height - this.bg2.y <= 0){
            this.bg2.y = -(this.bg1.y + this.bg1.height);
        }

        this.bg1.y += this.default_speed;
        this.bg2.y += this.default_speed;



通过这样,确实可以移动,但是一旦 this.default_speed过程中发生改变(用定时器或者ENTER_FRAME 动作),就会出现2个背景图直接有间隙,而且间隙越来越大。如下图:

WX20180716-130309@2x.png

大家有什么好的思路和解决方案吗?

最佳答案

查看完整内容

if (this.bg1.y >= this.bg1.height) { this.bg1.y = this.bg2.y -this.bg1.height } if (this.bg2.y >= this.bg2.height) { this.bg2.y = this.bg1.y -this.bg2.height; } 你把你换位置得代码 换成这个试一试
分享到 :
0 人收藏

7 个回复

倒序浏览
13596054529  登堂入室 | 2018-7-16 13:04:41
if (this.bg1.y >= this.bg1.height) {
            this.bg1.y = this.bg2.y -this.bg1.height
        }

        if (this.bg2.y >= this.bg2.height) {
            this.bg2.y = this.bg1.y -this.bg2.height;
        }

你把你换位置得代码 换成这个试一试
飞翔的乌鸦  渐入佳境 | 2018-7-16 14:16:04
反过来,先移动后判断。
kycl273  登堂入室 | 2018-7-16 14:38:22
飞翔的乌鸦 发表于 2018-7-16 14:16
反过来,先移动后判断。

你好,我改成下面的,先移动后判断,也不行:

this.bg1.y += this.default_speed;
        this.bg2.y += this.default_speed;
        
        if( this.bg1.height - this.bg1.y <=0 ){
            this.bg1.y = -(this.bg2.y + this.bg2.height);
        }

        if( this.bg2.height - this.bg2.y <= 0){
            this.bg2.y = -(this.bg1.y + this.bg1.height);
        }

        
13596054529  登堂入室 | 2018-7-16 14:46:30
13596054529 发表于 2018-7-16 14:43
if (this.bg1.y >= this.bg1.height) {
            this.bg1.y = this.bg2.y -this.bg1.height
        }

但是  还是先移动 然后再判断换位置
kycl273  登堂入室 | 2018-7-16 15:05:01
13596054529 发表于 2018-7-16 14:46
但是  还是先移动 然后再判断换位置

大神,可以了,好厉害,我之前的为什么不行呢?
13596054529  登堂入室 | 2018-7-16 15:37:55
kycl273 发表于 2018-7-16 15:05
大神,可以了,好厉害,我之前的为什么不行呢?

哈,并不是大神,代码的顺序应该是先移动然后再判断 ,其次,你的位置改变的代码写错了 ,应该是在舞台上的背景的坐标减去要出现背景的高度  这样无缝连接上
kycl273  登堂入室 | 2018-7-18 09:36:07
13596054529 发表于 2018-7-16 15:37
哈,并不是大神,代码的顺序应该是先移动然后再判断 ,其次,你的位置改变的代码写错了 ,应该是在舞台上 ...

明白了,厉害!感谢感谢!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号 )

Powered by Discuz! X3.4 © 2001-2019 Comsenz Inc.

返回顶部