AIと作る「シンメトリ☆ブロック自動配置システム」
前回は、「BlockTennis」と「自動配置システム」をガッチャンコして色々調整した。
ただ、前回の自動配置システムでは、ブロックの配置が上か下に偏ってしまって相手の陣地に行きにくいので、今回は、上下の偏りがなくなるように自動配置システムを修正する。
アドバイザーのAIはCopilotさん
ブロック自動配置システムを上下も対称に
これまでの自動配置システムでは左右対称だったが、今回は上下も対称にしてみる。
ブロックの配置を左右だけでなく上下も対称にしたい
構造は理解したが、Copilotさんのコードはそのまま使えないので(詳細は前回の記事参照)、前回作ったコードに追加修正して実行すると以下のように上下対称に配置できた。
追加したコード
blocks_per_side = 5; // 上下に配置するので、ブロックの数を半分にする
center_y = room_height / 2; // Y座標の基準点の中央値を追加
// for内でブロックを配置するプログラムを以下に変更(y_positon[i] = _new_y;の下)
// 上半分
// 左側のブロック
instance_create_layer(center_x - _new_x - grid_size_y, center_y + _new_y, "Instances", obj_block);
// 右側のブロック
instance_create_layer(center_x + _new_x + grid_size_y, center_y + _new_y, "Instances", obj_block);
// 下半分
// 左側のブロック
instance_create_layer(center_x - _new_x - grid_size_y, center_y - _new_y, "Instances", obj_block);
// 右側のブロック
instance_create_layer(center_x + _new_x + grid_size_y, center_y - _new_y, "Instances", obj_block);
シンメトリ自動配置プログラムとBlockTennisをガッチャンコ。
これで上下左右に対称にブロックが配置できた。
両陣営にボールが入っていくようになったが、コースによっては、中央に壁ができちゃうことがあるので、ボールの通り道ができるようにしてみようかなと思う。