收藏
回答

微信小游戏在真机出现错误,不知是否为BUG?

操作系统 工具版本
Windows V1.02.1712280

微信小游戏开发工具自带的DEMO,在PC调试没有问题,到真机体验“重新开始”时出现错误:


* Bug 表现是什么?预期表现是什么?


* 如何复现?

每次必现。


* 提供一个最简复现 Demo

微信小游戏开发工具自带的Demo。



回答关注问题邀请回答
收藏

6 个回答

  • Jack黄
    Jack黄
    2018-01-23

    不谢,欢迎关注我的公众号:ThreeIsAll。

    2018-01-23
    有用
    回复
  • Wang
    Wang
    2018-01-22

    感谢,搞了半天,终于找到问题了

    2018-01-22
    有用
    回复
  • Jack黄
    Jack黄
    2018-01-07

    NND,终于把问题定位出来了!!!那个该死的程序猿写的?

    1、render方法中会用到top属性,top属性没有初始化,在PC模拟器中不会出错。

    2、在手机上,top属性没有初始化和赋值,在执行render中用到top属性被认为时NULL而出错。


    BackGround类的构造函数中两行代码改一下顺序,就好了~~

    原代码:

        this.render(ctx)

        this.top = 0


    修改后代码:

        this.top = 0

        this.render(ctx)





    2018-01-07
    有用
    回复
  • Jack黄
    Jack黄
    2018-01-07

        //调试代码,在手机上会出错

        //let ctx = canvas.getContext('2d')

        console.log("At restart: canvas, ctx: ", canvas, ctx)

    0107:可能出错在下面代码中,后面的LOG信息没有显示出来。

       

             this.bg       = new BackGround(ctx)

        this.player   = new Player(ctx)

        this.gameinfo = new GameInfo()

        this.music    = new Music()


        console.log("At restart: bg, player:", this.bg, this.player)


    2018-01-07
    有用
    回复
  • Jack黄
    Jack黄
    2018-01-07

    20180107:   

    通过增加LOG信息,打开DEBUG开关,在手机查看LOG信息。

    初步判断是下面代码中的window对象存在“循环引用”,在第一次启动后被系统给释放掉了。


    Demo中代码如下:

       this.bg       = new BackGround(ctx)

        this.player   = new Player(ctx)

        this.gameinfo = new GameInfo()

        this.music    = new Music()


        console.log("At restart: bg, player:", this.bg, this.player)

        console.log("At restart: window:", window)


        window.requestAnimationFrame(

          this.loop.bind(this),

          canvas

        )

        console.log("At restart: after window.requrestAnimationsFrame")



    2018-01-07
    有用
    回复
  • Jack黄
    Jack黄
    2018-01-07

    请各位大侠帮解答一下,多谢!

    2018-01-07
    有用
    回复
登录 后发表内容