如何调试程序

当你阅览的时候发现图片只加载了一半或是动画都不会动了,这时候一定是出现了错误了,你按F12打开浏览器的开发工具,看看Console是不是有错误提示?如果是一般性的JavaScript语法错误,那么会详细提示哪里出错了,这种错误好处理。


那么没有错误提示的时候,界面也不是你预期的结果呢?

看看是不是加载顺序的问题,

先加载的图片在屏幕下层,后加载的再它之上,一层层叠加。如图所示。


层级关系.png

背景层是最先加载的,处于最底层。第二个加载的月饼处于背景层之上,属于第二层。后来加载的处于第三层,会盖在第二层的月饼之上。

看看精灵的坐标是不是预期的值

这一点也是比较重要的,尤其是你的精灵坐标依赖于其它的精灵,而很可能是被依赖的那个精灵坐标还没有移动到目标位置,你就依据这个来进行计算了,结果自然谬之千里了。或是你的精灵坐标落在了场景外面,这个自然看不到你的精灵了。
官方有个调试工具,就是Debug类。下面详细看看这个类如何使用。

        this.bird = this.add.sprite(0, 0, 'ui', 'bird1.png');
        this.bg = this.add.sprite(0, 0, 'bg');

先加载了小鸟,然后加载场景。运行的时候发现鸟不翼而飞了。使用debug的时候我们先在这个场景里添加一个render方法。

game.states.menu = function() {
    this.create = function() {
        this.bird = this.add.sprite(0, 0, 'ui', 'bird1.png');
        this.bg = this.add.sprite(0, 0, 'bg');
    },
    this.render = function() {
        game.debug.rectangle(this.bird);//在鸟的位置输出一个矩形框
        game.debug.spriteInfo(this.bird, 10, 10);//在场景坐标(10,10)的地方打印鸟的信息
    }
}
debug.png

关于这个精灵的信息已经打印出来了,有坐标、锚点、角度、旋转等信息,visible也是true,bounds是它的矩形框位置信息。
我们看到图上那个浅绿色的框框就是鸟该出现的位置,之所以没有出现就要看看是不是被遮住了。也可以用debug来打印body的信息通过bodyInfo(this.bird, x, y)这个方法,不过前提是对这个bird已经开启了物理引擎。更多的关于debug的功能,大家可以查询它的文档。关于如何查阅文档,之前有教程做过介绍。
祝大家都能快速、精准的定位出现的问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,177评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,647评论 19 139
  • 为未来而装扮 你是活在当下的你,也是走向未来的你。你现在的努力不仅是为了现有的生活,也是为了未来的你。你现在的装扮...
    开启2017阅读 221评论 0 4

友情链接更多精彩内容