我写了一个游戏,现在我想学习如何操作相机。
我的绘图包括:
private void render()
{
// CREATE THE GRAPHICS
Graphics2D g = (Graphics2D) bufferStrategy.getDrawGraphics();
// MAKE THE PICTURE WHERE WE WILL PAINT EVERYTHING AT ONCE
g.clearRect(0, 0, WIDTH, HEIGHT);
// PAINT ANYTHING WE NEED HERE
render(g);
g.dispose();
// SHOW THE WHOLE IMAGE RATHER THAN PAININT ONE OBJECT AT A TIME
bufferStrategy.show();
}
我的 BufferStrategy 是这样创建的:
canvas = new Canvas();
// once again I add 1 because java is stupid that's why
canvas.setBounds(0, 0, WIDTH+1, HEIGHT+1);
//canvas.setBounds(bounds);
canvas.setIgnoreRepaint(true);
// SET GRAPHICS DEVICE
canvas.createBufferStrategy(2);
bufferStrategy = canvas.getBufferStrategy();
在渲染函数中,我用所有应该在的平台绘制我的游戏世界。现在,如果游戏世界大于窗口大小,并且我希望能够专注于角色并绘制角色所在的世界部分,我该怎么做?所以假设我的窗口是 300 x 300,我的游戏世界是 900 x 900,我的角色位于中间,所以我想显示 x 为 150 y 为 150 的图形部分,宽度和高度为 300 x 300。
那么我将如何着手使用该 Graphics2D 并将其转换为指定值呢?如果这个问题已经得到回答或者很简单,我很抱歉,但我是新手,真的很想得到一些帮助。
感谢您提前提供任何帮助。我已经尝试了我所知道的一切都无济于事。