画像(logo)

HOME/[JAVA言語]ブロックパズルの作り方 目次/三日目 落下

[JAVA言語 ブロックパズルの作り方]
三日目 落下

広告

広告

↓発売日:2017年04月04日↓

Java 第2版 入門編 ゼロからはじめるプログラミング (プログラミング学習シリーズ)

新品価格
¥2,030から
(2018/10/8 23:34時点)

目次へ戻る

落下

今回はまっすぐ下にブロックを落下させたいと思います。

と言ってもただブロックの縦位置「block_y_count」の値を増やすだけなのでとても簡単です。

ブロック落下用関数

こちらがブロック落下用の関数になります。

void my_fall_block(){
	block_y_count += block_speed;
	block_y = (int)(block_y_count / DRAW_BLOCK_WIDTH);
}

落下のスピードを表す変数「float block_speed」を別に用意してそれを毎回足し合わせるカタチで落下させております。

そして気になるのは前回当たり判定用の縦位置と説明しました「block_y」の部分ですね。

これはSTGなど細かくピクセル単位で当たり判定をつける場合と違ってブロックパズルは基本的にはマス目単位での当たり判定で済ませる事ができるので、その現在のマス目にあたる値をブロックの幅で割る事によって算出して「block_y」に入れているというワケです。

あとはこのメソッドを「ゲームループ」に加えるだけですね。

広告

ゲームループ

あらためてゲームループになります。

@Override
public void handle(long time){
	gc.clearRect(0,0,640,480);

	my_make_block();
	my_draw_back();
	my_draw_variable();
	my_draw_block();
	my_draw_stage();
	my_fall_block();

	if(block_y_count > DRAW_BLOCK_WIDTH * 17){
		block_y_count = 0;
		block_y = 0;
	}
}		

当たり判定がないのでどこまでもいってしまわないように下の壁についた時点で元に戻るよう制限をつけております。

画像(jb_3_1)

ブロック落下!

「stage」の内側だけ表示

前回はわかりやすいように「stage」の全体を表示しましたが今回から内側だけを描くようにします。

void my_draw_stage(){
	for(int y=0;y<STAGE_HEIGHT - 2;y++){
		for(int x=2;x<STAGE_WIDTH - 2;x++){
			if(stage[y][x] == 1){gc.setFill(Color.RED);
				gc.fillText("■",x * DRAW_BLOCK_WIDTH,DRAW_POSITION_Y + y * DRAW_BLOCK_WIDTH);}
			else if(stage[y][x] == 9){gc.setFill(Color.WHITE);
				gc.fillText("■",x * DRAW_BLOCK_WIDTH,DRAW_POSITION_Y + y * DRAW_BLOCK_WIDTH);}
		}
	}
}

配列を「for」文などで処理する時は配列の要素数を読み違えて配列の要素からはみ出る「バッファオーバーフロー」しないように注意が必要です。

ここまでの中間ソースになります。

中間ソース2

それでは次回は左右の壁の当たり判定をつけたいと思います。

次回

四日目 当たり判定「壁」

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓発売日:2017年04月18日↓

Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで

新品価格
¥2,990から
(2018/10/8 23:35時点)

↓発売日:2016年06月25日↓

新・明解Java入門 (明解シリーズ)

新品価格
¥2,916から
(2018/10/8 23:36時点)

↓発売日:2016年08月31日↓

やさしいJava 第6版 (「やさしい」シリーズ)

新品価格
¥2,786から
(2018/10/8 23:37時点)

↓発売日:2018年11月21日↓

本格学習 Java入門 [改訂3版]

新品価格
¥2,462から
(2018/10/8 23:38時点)

↓発売日:2016年12月15日↓

Javaの絵本 第3版 Javaが好きになる新しい9つの扉

新品価格
¥1,706から
(2018/10/8 23:39時点)

↓発売日:2016年09月28日↓

やさしいJava 活用編 第5版 (「やさしい」シリーズ)

新品価格
¥2,786から
(2018/10/8 23:40時点)