![](/img/trans.png)
[英]How do i make my game not speed up/slow down depending on the fps in java?
[英]How can I speed up my Java game's FPS?
我正在制作一个Java游戏,当我绘制图形时游戏滞后很多。 我目前绘制图形的方法是制作BufferedImage
,从中获取Graphics2D
,然后做一大堆:
g2d.drawImage(loadedImages.getImage(),x,y,null);
将所有图像打印到BufferedImage
,我将BufferedImage
绘制到屏幕上。
我在BufferedImage
绘制了很多图像。 有没有更好的方法来加快绘画时间? 我对图形和图形卡知之甚少。 我应该使用显卡吗? 我应该直接在屏幕上画画吗? 我应该使用与drawImage()
完全不同的东西吗?
我发现扩展java.awt.Canvas并使用它很有用
BufferStrategy bs;
void init() {
createBufferStrategy(2);// or 3 for triple-buffering
bs = getBufferStrategy();
}
然后实际的draw()
方法看起来像
void draw() {
Graphics g = bs.getDrawGraphics();
g.drawImage(image, x, y, w, h, null);
// Draw more things here...
// You can also make calls like `myObject.draw(g)` and whatever
// you draw onto `g` within those calls will show up.
bs.show();
g.dispose();
}
这是我用来绘制很多东西的东西。 然后在每个myObject.draw(g)
调用中,有时会有多个其他类似的调用被链接起来。 通常我的主draw()
方法在其中有一个或两个for
循环,只是说for(Entity e: entities) e.draw(g);
或类似的东西。 然后整个绘图链从那里开始。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.