跟老师代码一样,但是只能绘制出一组铅笔是哪出错了呢

来源:4-12 小游戏上下铅笔形管道的创建-3

千与千寻1234

2018-05-03

run()
{
    //绘制背景
    this.dataStore.get('background').draw();

    //绘制铅笔前判断
    const pencils = this.dataStore.get('pencils');
    //此时铅笔的右边界恰好移除canvas左边界
    if (pencils[0].x + pencils[0].width <= 0 && pencils.length === 4)
    {
        //将数组中的铅笔移除
        pencils.shift();//上
        pencils.shift();//下
    }

    if (pencils[0].x <= (window.innerWidth - pencils[0].width) / 2 && pencils.length === 2)
    {
        this.createPencil();
    }

    //绘制铅笔
    this.dataStore.get('pencils').forEach(function (value) {
        value.draw();
    });

    //绘制地面
    this.dataStore.get('land').draw();


    let timer = requestAnimationFrame(() => this.run());
    this.dataStore.put('timer',timer);
    //cancelAnimationFrame(this.dataStore.get('timer'));
}


写回答

3回答

Echolulu

2018-08-17

我解决了,楼主你log下pencils[0]看下里面的属性有没有写错的,然后再log下pencils[0].x <= (window.innerWidth - pencils[0].width) / 2,看是不是有true

1
2
慕粉1473820028
是log pencil.length===2没有true
2018-09-13
共2条回复

Echolulu

2018-08-16

我也是这个问题,楼主解决了吗0.0

1
0

傅猿猿

2018-05-04

你看看初始化铅笔那块,如果刚刚开始没有正确的初始化,这块代码就算一模一样,也没有判断的必要条件,就是在导演类里初始化铅笔创建那块,对一下

1
0

微信小游戏入门与实战,一天之内搞定微信小游戏开发

官方同步,第一时间掌握整套微信小游戏开发核心技术

3515 学习 · 664 问题

查看课程