私は本当に基本的なプログラムで戦いをシミュレートしようとしていますが、これはJavaで大きなプログラムで初めてのことですから、どのように進行するのかわかりません。私は600×600の大きなパネルを持っていて、Graphics2Dを使って地形を20×20の長方形として描画すると思っていました...残念ながら、いくつかのチュートリアルでも何をすべきか分かりません。Java - Graphics2D Rectangleを使用してパネルに2Dタイルマップを作成しますか?
私には、10種類の地形と5種類の風景があります。基本的に私がプログラムにしたいのは、コンボボックスで特定のプロファイルを選択したときに、風景と2つの反対側を戦闘で描くことです(まだ私はまだありません)。
正直に私は持っていませんプログラムで非常に進歩しました。私はこのようなもののためにGraphics2Dと四角形だけを使うべきですか、それともOpenGLなどに切り替えるべきですか?私の現在のJavaの経験では、私はそれが非常に遠くに役立つとは思わない。とにかく、ここで私がこれまで持っているものです。
public class Map extends JPanel {
int n = 1;
int x; int y;
int Area = 750;
public Color City = new Color(214,217,223);
public Color Desert = new Color(255,204,102);
public Color DirtRoad = new Color(153,102,0);
public Color Forest = new Color(0,102,0);
public Color Hills = new Color(51,153,0);
public Color Lake = new Color(0,153,153);
public Color Mountains = new Color(102,102,255);
public Color Ocean = new Color(0,0,153);
public Color PavedRoad = new Color(51,51,0);
public Color Plains = new Color(102,153,0);
public Rectangle blocks[];
public Map(){
blocks = new Rectangle[750];
if (n == 1) {
setBackground(City);
n = 2;
} else if (n == 2) {
setBackground(Desert);
n = 3;
} else if (n == 3) {
setBackground(DirtRoad);
n = 4;
} else if (n == 4) {
setBackground(Forest);
n = 5;
} else if (n == 5) {
setBackground(Hills);
n = 6;
} else if (n == 6) {
setBackground(Lake);
n = 7;
} else if (n == 7) {
setBackground(Mountains);
n = 8;
} else if (n == 8) {
setBackground(Ocean);
n = 9;
} else if (n == 9) {
setBackground(PavedRoad);
n = 10;
} else if (n == 10) {
setBackground(Plains);
n = 1;
} else {
}
for (int i = 1; i <= Area; i++) {
blocks[i] = new Rectangle(x, y, 20, 20);
}
}
私のコードは少し不安定ですので、私は、いくつかのYouTubeのチュートリアルをはるかにこれを得ました。私がメインフォームコードで持っているのは、checkBox発火イベントだけです。 (GUIはNetbeansエディタであらかじめ設計されています)
So..what質問ですか?投票を終了する。 – mre
マップを作成するためにGraphics2DまたはOpenGLを使用する必要がありますか?また、どちらの方法でマップを作成する必要がありますか? – lopzjk12
それらが画像の場合は、どちらかを気にせずに単に 'JLabel'を使用してください。それらがそうでない場合(あなたの例が示すように)、 'JComponent'の' paintComponent'をオーバーライドすることによって 'Graphics2D'を使います。 @mreは正しいです(例: – mre