好不容易在cc上把代码的流程跑通了,想起来几天都没有在微信开发者工具上进行预览了。于是打算在开发者工具上跑一下看看,马上在cc上构建了一下,打开发者工具一看,跑不起来了,有2个Bug。报的错是下面这样的。
gamePage.html:482 src/project.js:
TypeError: Cannot read property '0' of undefined
at r (project.js:1)
at project.js:1
at Object.window.__require.GameScene../GameLevel/GameManager (project.js:1)
at r (project.js:1)
at t (project.js:1)
at project.js:1
at wrapFn (gamePage.html:475)
at require (VM168 WAGame.js:1)
at VM168 WAGame.js:1
at p.downloadScript (downloader.js:15)
发现了Bug不要紧,写代码天天都碰得到,于是耐心的解决这个问题。我开始仔细的分析工发者工具报的错,发现完全看不懂这些报错信息,只知道有错了,也不知道错在那个地方,那行代码。
于是我把GameManager文件中有可能导致出错的代码全都注释掉,满以为这样一定可以找出Bug。信心百倍的做了之后,发现还是报这个错,我不死心,把GameScene文件中的代码也注释掉,再次在开发者工具跑,还是报这个错。尼玛,真是出了鬼,于是我把GameScene里的代码全部注释掉,只剩下了load()函数和start()函数。即使是这样,还是报错,我彻底无语了。
心情极度郁闷之际,下去吃了个肯德基,平复了一下心情,继续回来调试。
为了找出这个Bug,我只好用最笨的方法了,重新建了个工程,把老工程里的文件一个一个往里拖,终于在拖到GameScene文件的时候,Bug在新工程里又出现了,这下子心里总算是有了个数,知道Bug是在这个文件中,老办法,于是把文件里的方法一个一个地注释,发现不是这些代码的原因。后来在注释到
let ShiCiTools = require('./ShiCiTools')
这行代码的时候,Bug出现了。终于知道问题出在哪里。细看之后,发现是require的路径写错了。正确的导入路径是这样的。
let ShiCiTools = require('./GameLevel/ShiCiTools')
就是这么个Bug,在cc里运行好好的,在微信开发者工具里就运行不起来。折腾了几个小时,真尼累。