解決済み:
タイル張りの 2D ゲームを作成中ですが、問題が発生しています。私のゲームでは、使用するペイントの種類ごとに領域としてキャッシュされる任意の形状のブラシ タイプを使用して、ユーザーがそこにマップを作成できます。特定のペイントのキャッシュ領域を取得したら、マップ全体で 100 x 100 の各タイルの交点から領域をタイル化された Path2D 形状に分割します。問題は、表示領域内のタイルを AffineTransform し、それをペイント用のクリップに設定すると、形状が元の形状から切り取られているように見えることです。
for(int y = 0; y < host_frame.getHeight(); y+=100){
for(int x = 0; x < host_frame.getWidth(); x+=100){
host.setClip(AffineTransform.getTranslateInstance(CamX, CamY).createTransformedShape(paint_tiles.get(paint_textures.get(i)).get(new Point(x,y))));
host.drawImage(paint_textures.get(i).getImage(), x, y, host_frame);
}
}
結果は、動きがある場合、実際の形状のタイル化されたカットオフ バージョンを生成します...
出力:
初期ビュー 右および下に移動した後のビュー
解決
行を編集
host.drawImage(paint_textures.get(i).getImage(), AffineTransform.getTranslateInstance(CamX, CamY).createTransformedShape(paint_tiles.get(paint_textures.get(i)).get(new Point(x,y))).getBounds().x,AffineTransform.getTranslateInstance(CamX, CamY).createTransformedShape(paint_tiles.get(paint_textures.get(i)).get(new Point(x,y))).getBounds().y, host_frame);