
落とし穴 ボスは穴から遠ざかるがエキサイトすると我を忘れる!
前回の落とし穴
前回は、ボスゴーレムの登場を過去のコードを重ね技で作った。
今回は、ボスが穴から遠ざかるようにしてみる。
今日のハイライト

落とし穴の想い出 モンハンワールド
モンハン面白いが、モンハン持ちがつらくてあまりやってなかった。
だが、ワールドはモンハン持ちしなくて良いのでかなりやった。
ワールドは、坂道を見つけて統べるのが凄く楽しかった。
地形を観察して敵をジャンプ攻撃。
ジャンプのないモンハンでジャンプができるってのもワールドが好きな理由。落下したり空中に舞い上がったり、高低差の遊びが加わったワールドは、アクションゲーム度が上がって色んな参考になった。
ボスは穴に近寄らない
ボスが穴の近くで止まってしまうと簡単に落とせてしまうので、近くの穴を検出して一定の範囲外に出るようにする。
ボスが近くの穴から遠ざかる動作を実装するには、以下のステップを踏みます。
①近くの穴を検出する
②穴との距離を計算する
③穴が一定の範囲内にいる場合、その敵から遠ざかる方向にボスを動かす
ChatGPTのサンプルコードを元に修正。
ボス(obj_boss_golem)のステップイベント
// 索敵
detection_timer += 1;
if (detection_timer >= detection_interval and !damage_hit and !dizzy and !appear) {
// 穴から遠ざかる
// 自分の位置
var gx = x;
var gy = y;
// 穴オブジェクトのリストから最も近い穴を探す
var closest_hole = noone;
var closest_distance = hole_dist; // 探索範囲(ピクセル)
with (obj_hole) {
var distance_to_hole = point_distance(gx, gy, x, y);
if (distance_to_hole < closest_distance) {
closest_distance = distance_to_hole;
closest_hole = id;
}
}
if (closest_hole != noone and !damage_hit and !dizzy and !appear and !chasing) {
// 近くの穴を見つけた
hole = true;
// 穴の位置
var hx = closest_hole.x;
var hy = closest_hole.y;
// 穴から遠ざかる方向ベクトルを計算
direction = point_direction(hx, hy, gx, gy);
speed = spd; // 移動速度
sprite_index = spr_boss_golem_move;
alarm[0] = 30;
} else {
image_blend = c_white;
}
detection_timer = 0;
}
穴を探すのも一定時間にして、ダメージ状態などを除外。
鬼プレス状態だと、穴から逃げないようにした。
ゲームでテスト

穴から距離を取るのが分かりにくいので、体を赤くしている。
鬼プレスだと関係なく追いかけるようにしたことで、穴のそばまで危険を冒して誘導して落とすことも可能になった。

今年も誰かのお役に立てれば幸いです。

使用ツールとAI
ゲームツールは「GameMaker」
ドット絵ツールは「EDGE」
AIは「ChatGPT」