【Java:テトリス制作】フィールドの表示とブロックの表示
前の記事 | テトリス制作Top | 次の記事 |
フィールド表示とブロック表示をやっていきますが、これは前回制作したアクションゲームのファイル読み込み時の処理と同じ感じで、二次元配列に数値を入れ、それに適合した色で矩形塗りつぶしをするだけです。
一応イメージを張り付けておきます。
今回は0なら何も描画せず、1なら赤の矩形、2なら水色の矩形を描画してみましょう。
1ブロックの大きさは25×25にしたいと思うので25ピクセルずつブロックを敷き詰めてみます。
import com.nompor.gtk.APIType; import com.nompor.gtk.GTK; import com.nompor.gtk.GTKColor; import com.nompor.gtk.GTKView; import com.nompor.gtk.draw.GTKGraphics; public class Test1 { public static void main(String[] args) { GTK.start("TETRIS", 250, 500, new GTKView() { static final int BLOCK_SIZE=25; GTKColor red; GTKColor sky; GTKColor black; public void start() { red = GTK.createIntColor(255, 0, 0); sky = GTK.createIntColor(100, 255, 255); black = GTK.createIntColor(0, 0, 0); } //フィールド int[][] fields = { {0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0}//5 ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0}//10 ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0}//15 ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,0,0,0,0,0,0,0,0} ,{0,0,1,0,0,0,0,0,0,0} ,{0,0,0,2,0,0,0,0,0,0} ,{1,2,1,2,1,1,1,1,1,2}//20 }; //色の定数 static final int RED = 1; static final int SKYBLUE = 2; public void draw(GTKGraphics g) { g.setColor(black); g.fillRect(0, 0, GTK.getWidth(), GTK.getHeight()); for ( int i = 0;i < fields.length;i++ ) { for ( int j = 0;j < fields[i].length;j++ ) { //色を特定 switch(fields[i][j]) { case RED:g.setColor(red);break; case SKYBLUE:g.setColor(sky);break; } //ブロックの描画 if ( fields[i][j] != 0 ) { g.fillRect(j*BLOCK_SIZE, i*BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE); g.setColor(black); g.drawRect(j*BLOCK_SIZE, i*BLOCK_SIZE, BLOCK_SIZE, BLOCK_SIZE); } } } } },APIType.SWING); } }
実行結果
今回は超簡単ですね。
JavaFXを使用する場合はAPIType.FXを使用してください。自己満で作りながら使っているライブラリのソースはこちらから参照できます。未完成のJavadocはここ。
ディスカッション
コメント一覧
まだ、コメントがありません