TNP資料室 @ ウィキ

一度通ったマスの色を変える

最終更新:

kokeiro

- view
だれでも歓迎! 編集

一度通ったマスの色を変える

 一筆書きをするためにはどのマスを通って、どのマスは通ってないのかが分からなくてはなりません。そこで、一度通ったマスの色を変えることでそれを実現したいと思います。
 今回は移動したマスの識別番号が0(薄緑)だったら識別番号を3(黄色)に書き換えることで実現します。今回は色を変えるとこまでしか実装しませんので、一度通ったところも再び通ることが出来ます。また、識別番号を書き換えるのはかならず移動できたかどうかを確認してから行いましょう。もし垢マスであるかどうかを確認する前に識別番号を書き換えてしまうと全部黄色にできちゃいます。

  • game.cppのMovePlayer関数に通ったマスの識別番号を3に書き換える記述を追加

game.cpp

...
void MovePlayer(){
	if( Key[KEY_INPUT_RIGHT] == 1 ){	// 右が押されたら
		Player.x++;			// x座標を増やす
		if( Player.x == 8 )		// 飛び出たら
			Player.x--;		// 戻す
		if( Bord[Player.y][Player.x].Kind == 1 )// 赤マスだったら
			Player.x--;		// 戻す
		Bord[Player.y][Player.x].Kind = 3;	// 識別番号を書き換え
	}
	if( Key[KEY_INPUT_LEFT] == 1 ){		// 左が押されたら
		Player.x--;			// x座標を減らす
		if( Player.x == -1 )		// 飛び出たら
			Player.x++;		// 戻す
		if( Bord[Player.y][Player.x].Kind == 1 )// 赤マスだったら
			Player.x++;		// 戻す
		Bord[Player.y][Player.x].Kind = 3;	// 識別番号を書き換え
	}
	if( Key[KEY_INPUT_DOWN] == 1 ){		// 下が押されたら
		Player.y++;			// y座標を減らす
		if( Player.y == 8 )		// 飛び出たら
			Player.y--;		// 戻す
		if( Bord[Player.y][Player.x].Kind == 1 )// 赤マスだったら
			Player.y--;		// 戻す
		Bord[Player.y][Player.x].Kind = 3;	// 識別番号を書き換え
	}
	if( Key[KEY_INPUT_UP] == 1 ){		// 上が押されたら
		Player.y--;			// y座標を増やす
		if( Player.y == -1 )		// 飛び出たら
			Player.y++;		// 戻す
		if( Bord[Player.y][Player.x].Kind == 1 )// 赤マスだったら
			Player.y++;		// 戻す
		Bord[Player.y][Player.x].Kind = 3;	// 識別番号を書き換え
	}
}
...
 それぞれのif文の最後に1文書き足すだけです。なんかゲームっぽくなってきましたね。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

目安箱バナー