LibGDX添加角色后应用崩溃求助(Bird.png相关问题)
解决LibGDX添加角色后应用崩溃的问题
嘿,作为LibGDX新手,这个小坑真的很容易踩!我一眼就发现你代码里的问题啦👇
问题核心
你在create()方法里犯了一个变量赋值的错误:你把background变量重复赋值成了bird.png,但bird变量完全没有被初始化!
看你这段代码:
@Override public void create () { batch = new SpriteBatch(); background = new Texture("background.png"); background = new Texture("bird.png"); // 这里把background的引用覆盖成了bird纹理 // 关键:bird变量从头到尾没被赋值,一直是null! }
而在render()方法里你调用了batch.draw(bird, ...),这时候bird还是null,程序直接触发空指针异常(NullPointerException),这就是你看到应用崩溃的原因。
修复方法
只需要把bird变量正确初始化,别再覆盖background了,修改create()方法:
@Override public void create () { batch = new SpriteBatch(); background = new Texture("background.png"); bird = new Texture("bird.png"); // 给bird变量单独赋值 }
额外小建议
LibGDX的Texture属于需要手动释放的资源,为了避免内存泄漏,记得添加dispose()方法来清理资源:
@Override public void dispose () { batch.dispose(); background.dispose(); bird.dispose(); }
这样修改后,你的应用就能正常显示背景和小鸟角色啦!
内容的提问来源于stack exchange,提问作者Volker
相关产品推荐
相关产品推荐

