这里的场景是这样的:我正在使用 Frame 对象使用 AWT(无 Swing)进行一些较低级别的渲染。唯一的问题是,框架在直接渲染给它们时,不考虑它们的边界。因此,我们可能都知道,在 (0,0) 处渲染一个 Rectangle 看起来并不像是在做正确的事情。这是因为 (0,0) 是 Frame 的左上角。
所以问题是,而不是像这样为要在屏幕上呈现的所有内容添加 Frame 插图:
//This is within the rendering method in the Frame subclass. A buffer strategy is already created
Graphics2D g = (Graphics2D)bufferStrategy.getDrawGraphics();
g.clearRect(0, 0, getWidth(), getHeight());
g.setColor(Color.WHITE);
Insets insets = this.getInsets();
g.drawString("FPS: " + getFPS(), 100 + insets.left, 100 + insets.top); //<-- Ugh.
g.dispose();
我希望能够简单地向框架的底层图形添加某种偏移量。这可能吗?需要明确的是,最好有一些这样的功能:
g.setDrawingOrigin(x, y);
用这种方法,我可以逃脱谋杀。我不知道为什么不会有一个埋在某个地方...
注意:它是 Frame 而不是 JFrame,因此我们缺少可供参考的内容窗格。另一件事,最好避免将任何其他组件添加到框架中。我试图尽可能保持轻量级(因此,使用 Frame 而不是 JFrame。好吧,没有太大区别,但让我玩得开心 :D)。