如何解决在 BufferStrategy 上绘制帧后尝试显示帧时出错
我正在尝试用 Java 制作一个简单的游戏引擎,我目前正在处理渲染和显示内容,我制作了一个显示功能来在 JFrame 中显示由相机渲染的帧
if (cam != null)
frame = cam.render();
setVisible(true);
ImageCapabilities imgBackBufCap = new ImageCapabilities(true);
ImageCapabilities imgFrontBufCap = new ImageCapabilities(true);
BufferCapabilities bufCap =
new BufferCapabilities(imgFrontBufCap,imgBackBufCap,BufferCapabilities.FlipContents.copIED);
try {
createBufferStrategy(2,bufCap);
} catch (AWTException ex) {
createBufferStrategy(2);
}
BufferStrategy bs = getBufferStrategy();
Graphics g = bs.getDrawGraphics();
if (frame != null)
g.drawImage(frame,null);
g.dispose();
bs.show();
但是有一次我遇到这个异常时它画了一个框架,我在互联网上找不到任何有用的东西,所以我在这里问了一个问题
Exception in thread "display" java.lang.NullPointerException: Cannot invoke "java.awt.image.VolatileImage.getGraphics()" because "this.backBuffers[i]" is null
at java.desktop/java.awt.Component$BltBufferStrategy.showSubRegion(Component.java:4508)
at java.desktop/java.awt.Component$BltBufferStrategy.show(Component.java:4469)
at com.physicsEngine.rendering.displayer.display(displayer.java:41)
at com.physicsEngine.Game.display(Game.java:74)
at com.physicsEngine.Game.run(Game.java:65)
at com.physicsEngine.Game.run(Game.java:69)
at com.physicsEngine.Game.run(Game.java:69)
at com.physicsEngine.Game.run(Game.java:69)
at com.physicsEngine.Game.run(Game.java:69)
at com.physicsEngine.Game.run(Game.java:69)
at com.physicsEngine.Game.run(Game.java:69)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。