Cocos2d-js05-添加身体和移动身体

来源:互联网 发布:李白的艺术成就 知乎 编辑:程序博客网 时间:2024/04/18 10:26

Cocos2d-js05-添加身体和移动身体

1、检测蛇是否吃到食物,代码:

  //检测蛇是否吃到食物if(this._head.now_col==this._food.now_col && this._head.now_row==this._food.now_row){    //播放音效    cc.audioEngine.playEffect(res.bg_effect);    cc.log("蛇吃到了食物!");    //添加分数    this.m_score += 100;    score.setString("分数:"+this.m_score);    //重置食物的位置    this._food.now_row = Math.round(Math.random()*9);    this._food.now_col = Math.round(Math.random()*9);    this._food.setPosition(cc.p(this._food.now_col*63,this._food.now_row*63));    //添加蛇的身体    this._snakeBody = SnakeGame.create(2);    this._snakeBody.setScale(0.9);    if(SNAKE_BODY.length == 0 || SNAKE_BODY.length == null){        switch (dir){            case SNAKE_DIR.UP:                this._snakeBody.now_row = this._head.now_row - 1;                this._snakeBody.now_col = this._head.now_col;                break;            case SNAKE_DIR.DOWN:                this._snakeBody.now_row = this._head.now_row + 1;                this._snakeBody.now_col = this._head.now_col;                break;            case SNAKE_DIR.LEFT:                this._snakeBody.now_row = this._head.now_row;                this._snakeBody.now_col = this._head.now_col + 1;                break;            case SNAKE_DIR.RIGHT:                this._snakeBody.now_row = this._head.now_row;                this._snakeBody.now_col = this._head.now_col - 1;                break;            default :break;        }        cc.log("里面没有身体,添加一个!");    }else{        switch (dir){            case SNAKE_DIR.UP:                this._snakeBody.now_row = this._snakeBody.now_row - 1;                this._snakeBody.now_col = this._snakeBody.now_col;                break;            case SNAKE_DIR.DOWN:                this._snakeBody.now_row = this._snakeBody.now_row + 1;                this._snakeBody.now_col = this._snakeBody.now_col;                break;            case SNAKE_DIR.LEFT:                this._snakeBody.now_row = this._snakeBody.now_row;                this._snakeBody.now_col = this._snakeBody.now_col + 1;                break;            case SNAKE_DIR.RIGHT:                this._snakeBody.now_row = this._snakeBody.now_row;                this._snakeBody.now_col = this._snakeBody.now_col - 1;                break;            default :break;        }        cc.log("里面有身体,添加一个!");    }    //添加到数组中去    SNAKE_BODY.push(this._snakeBody);    this.getChildByTag(111).addChild(this._snakeBody,2);    this._snakeBody.setPosition(cc.p(this._snakeBody.now_col*63,this._snakeBody.now_row*63));}

2、移动所有的身体,代码:

//移动所有的身体if(SNAKE_BODY.length != 0){    var Snode = null;    for(var i = SNAKE_BODY.length - 1; i >= 0; i--){        Snode = SNAKE_BODY[i];        if(i == 0){            switch (dir){                case SNAKE_DIR.UP:                    Snode.now_row = this._head.now_row - 1;                    Snode.now_col = this._head.now_col;                    break;                case SNAKE_DIR.DOWN:                    Snode.now_row = this._head.now_row + 1;                    Snode.now_col = this._head.now_col;                    break;                case SNAKE_DIR.LEFT:                    Snode.now_row = this._head.now_row;                    Snode.now_col = this._head.now_col + 1;                    break;                case SNAKE_DIR.RIGHT:                    Snode.now_row = this._head.now_row;                    Snode.now_col = this._head.now_col - 1;                    break;                default :break;            }        }else{            Snode.now_col = SNAKE_BODY[i-1].now_col;            Snode.now_row = SNAKE_BODY[i-1].now_row;        }        Snode.setPosition(cc.p(Snode.now_col*63,Snode.now_row*63));    }}
视频地址:http://www.9miaoketang.com/course/37课程讨论帖地址:http://www.9miao.com/thread-64587-1-1.html源码地址:https://store.cocos.com/stuff/show/128289.htmlQQ交流群:83459374后期也会把该源码传在群里面去,欢迎大家加入讨论!

 

0 0
原创粉丝点击