let aGameInstance = require('GameInstance');
cc.Class({
    extends: cc.Component,

    properties: {
        BGArr: {
            default: [],
            type: [cc.Node], 
            serializable: true,   
        },
        PlayerNode: {
            default: null,
            type: cc.Node, 
            serializable: true,   
        },
        BGSprite: {
            default: null,
            type: cc.SpriteFrame, 
            serializable: true,   
        },
    },
    onLoad () 
    {
        this.distance = 0;
    },
    Reset()
    {
        if(aGameInstance.bFirstInGame)
        {
            aGameInstance.bFirstInGame =false;
            return;
        }
        
        for(let i=0 ;i<3; i++)
        {
            //创建一个新的节点，因为cc.Sprite是组件不能直接挂载到节点上，只能添加到为节点的一个组件  
            let node= new cc.Node('BG')  
            //调用新建的node的addComponent函数，会返回一个sprite的对象  
            const sprite = node.addComponent(cc.Sprite)  
            //给sprite的spriteFrame属性 赋值  
            sprite.spriteFrame=this.BGSprite;  

            node.x = 720*i;
            //把新的节点追加到self.node节点去。self.node，就是脚本挂载的节点  
            this.node.addChild(node);
        }
    },
    createMap()
    {
        //创建一个新的节点，因为cc.Sprite是组件不能直接挂载到节点上，只能添加到为节点的一个组件  
        let node= new cc.Node('BG')  
        //调用新建的node的addComponent函数，会返回一个sprite的对象  
        const sprite = node.addComponent(cc.Sprite)  
        //给sprite的spriteFrame属性 赋值  
        sprite.spriteFrame=this.BGSprite;  

        node.x = this.BGArr[2].x + 720;
        //把新的节点追加到self.node节点去。self.node，就是脚本挂载的节点  
        this.node.addChild(node);

        return node;
    },
    update (dt) 
    {
        if(this.PlayerNode.x>this.BGArr[1].x)
        {
            this.BGArr.push(this.createMap());
            this.BGArr.splice(0, 1);
        }
    },
});
