cocos creator实现图片的循环滚动效果

首先在一个cocos creator上创建一个节点,比如说是bg1,bg2它们分别代表同样的图片

要实现循环滚动效果,需要做的是两张图片具有相同的移动速度,然后到达临界条件的时候将第一幅图进行重置位置

我在bg1上绑定脚本BackGround1.js

在BackGround1.js中设置相关属性

//将全局变量加载进来
cc.Class({
    extends: cc.Component,

    properties: {
        player : {
            default : null,
            type    : cc.Node,
        },
        //第二张背景图片
        bg2    : {
            default : null,
            type    : cc.Node,
        },
        //第一张背景图片
        bg1    : {
            default : null,
            type    : cc.Node,
        },
        //开始图片加载
        stat   : {
            default : null,
            type    : cc.Node,
        },
        //图片的移动速度
        moveSpeed   : 18,

    },

    // LIFE-CYCLE CALLBACKS:

    onLoad () {
        this.up = false;
        this.g = -1200;
        var bird = this.player.getComponent("Player");
        // this.g  = -1000;
        var _this = this;
        //当一张背景图片被点击的时候将up重置为true
        this.node.on('mousedown',function(event){
            //每次点击背景图的时候他的初始速度为800
            bird.BirdUpCastSpeed = 450;
            _this.up = true;
            //隐藏开始图标
            _this.stat.active = false;
        });
        //当第二种图片被点击的时候
        this.bg2.on('mousedown',function(event){
            bird.BirdUpCastSpeed = 450;
            _this.up = true;
            //隐藏开始图标
            _this.stat.active = false;
        });
        
    },

    start () {

    },
    //当鼠标按下的时候会一直加速直达减速为零
    update (dt) {
          //父节点的宽度
          var parentWidth = this.node.parent.width;
          cc.log(parentWidth);
          //背景图移动
          this.node.x -= this.moveSpeed;
          this.bg2.x -= this.moveSpeed;
          if(this.node.x <= -parentWidth){
                var bg2NodeX = this.bg2.x;
                this.node.x = parentWidth + bg2NodeX;
          }
          if(this.bg2.x <= -parentWidth){
              var nodeX = this.node.x;
              this.bg2.x = parentWidth + nodeX;
          }
          
    },
});
背景图重置的条件是,有一个背景图已经移出屏幕,当移出屏幕的一瞬间记录一下第二张图片的节点位置,当第二张图片移出屏幕的时候做相同的处理,这时候重置位置的时候要注意两张图片的距离需要加上一个获取另外节点的x坐标,这样才不会出现漏洞,比如说第一张图片刚刚出屏幕的时候x坐标是-963,出屏幕的条件是-960,那么另外一张图片的位置一定是(-3,0),也就是说屏幕的右边会出现一个黑色的竖条漏洞,这时候就可以利用另外一张图片的x坐标加上刚才获取的x坐标,从而填充漏洞
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值