ゲームを書いたので、カメラの操作方法を学びたいと思います。
私の絵はこれで構成されています:
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、幅が 150 のグラフィックスの部分を表示したいとします。高さは 300 x 300 です。
では、その Graphics2D を取得して、指定された値だけシフトするにはどうすればよいでしょうか? この質問が回答されているか簡単な場合は申し訳ありませんが、私はこれに慣れていないため、本当に助けが必要です.
事前に助けてくれてありがとう。私が知っていることはすべて試しましたが、役に立ちませんでした。