GMLコード用AI
このノートブックはGememakerで使用するGMLコードの解答のためのAIです。 notebookLMの仕様上[1][2]など引用元が記載されますが、GMLコードではない場合がありますので予めご了承ください。

1. 移動・座標系
インスタンスの動きを制御する、最も基本的な要素です。
| 関数名・変数名 | カテゴリ | 重要度 | 構文・使用例 | 説明 |
| x / y | 移動 | 必須 | x += 4; | インスタンスの現在の位置(座標)です。 |
| speed | 移動 | 非常に重要 | speed = 5; | インスタンスの移動速度を設定するビルトイン変数です。 |
| direction | 移動 | 非常に重要 | direction = 90; | 移動方向を度数法(0-359)で設定します(0=右, 90=上)。 |
| move_towards_point | 移動 | 頻繁に使用 | move_towards_point(tx, ty, spd) | 指定した座標に向かって一定速度で移動させます。 |
| lengthdir_x / y | 数学 | 便利 | lengthdir_x(len, dir) | 指定した長さと角度から、X成分(またはY成分)を算出します。 |
Gemini の回答
GameMakerの主要な関数と変数を、WordPressの記事(リファレンス用)として使いやすいように、カテゴリ別に重要度の高いものに絞ってまとめました。
1. 移動・座標系
インスタンスの動きを制御する、最も基本的な要素です。
| 関数名・変数名 | カテゴリ | 重要度 | 構文・使用例 | 説明 |
| x / y | 移動 | 必須 | x += 4; | インスタンスの現在の位置(座標)です。 |
| speed | 移動 | 非常に重要 | speed = 5; | インスタンスの移動速度を設定するビルトイン変数です。 |
| direction | 移動 | 非常に重要 | direction = 90; | 移動方向を度数法(0-359)で設定します(0=右, 90=上)。 |
| move_towards_point | 移動 | 頻繁に使用 | move_towards_point(tx, ty, spd) | 指定した座標に向かって一定速度で移動させます。 |
| lengthdir_x / y | 数学 | 便利 | lengthdir_x(len, dir) | 指定した長さと角度から、X成分(またはY成分)を算出します。 |
2. 衝突判定
ゲームのルール(壁に当たる、敵に触れるなど)を作るために不可欠です。
| 関数名 | カテゴリ | 重要度 | 構文・使用例 | 説明 |
| place_meeting | 衝突 | 非常に重要 | place_meeting(x, y, obj) | 指定座標で対象オブジェクトと衝突するか(true/false)を返します。 |
| instance_place | 衝突 | 基本的 | instance_place(x, y, obj) | 衝突した相手の「インスタンスID」を返します。なければ noone。 |
| collision_rectangle | 衝突 | 基本的 | collision_rectangle(x1, y1, x2, y2, obj, prec, notme) | 指定した矩形範囲内にオブジェクトがいるかチェックします。 |
| place_free | 衝突 | 頻繁に使用 | place_free(x, y) | 指定位置が「Solid(固体)」オブジェクトと衝突しないか確認します。 |
3. インスタンス・オブジェクト操作
画面上のキャラクターやアイテムを生成・削除・管理します。
| 関数名 | カテゴリ | 重要度 | 構文・使用例 | 説明 |
| instance_create_layer | オブジェクト | 非常に重要 | instance_create_layer(x, y, "Layer", obj) | 指定レイヤーに新しいインスタンスを生成します。 |
| instance_destroy | オブジェクト | 頻繁に使用 | instance_destroy(); | インスタンスを破棄(削除)します。 |
| instance_exists | オブジェクト | 基本的 | if instance_exists(obj_player) | 指定したオブジェクトが画面内に存在するかチェックします。 |
| with | オブジェクト | 頻繁に使用 | with (obj_enemy) { hp -= 1; } | 他のインスタンスの視点で処理を実行します。 |
| instance_nearest | オブジェクト | 便利 | instance_nearest(x, y, obj) | 最も近い位置にいるインスタンスのIDを取得します。 |
4. 入力・描画・その他
プレイヤーの操作や画面表示、データの管理に関わる項目です。
| 関数名・変数名 | カテゴリ | 重要度 | 構文・使用例 | 説明 |
| keyboard_check | 入力 | 非常に重要 | keyboard_check(vk_space) | キーが「押されている間」ずっとtrueを返します。 |
| keyboard_check_pressed | 入力 | 非常に重要 | keyboard_check_pressed(vk_enter) | キーが「押された瞬間」だけtrueを返します。 |
| draw_self | 描画 | 基本的 | draw_self(); | 設定されているスプライトをそのまま描画します。 |
| draw_text | 描画 | 基本的 | draw_text(x, y, string) | 画面に文字を表示します。 |
| clamp | 数学 | 便利 | hp = clamp(hp, 0, 100); | 値を最小値〜最大値の範囲内に強制的に収めます。 |
| audio_play_sound | 音声 | 基本的 | audio_play_sound(snd, 1, false) | 効果音やBGMを再生します。 |
| room_goto | その他 | 基本的 | room_goto(rm_stage2); | 指定したルーム(ステージ)へ移動します。 |
| show_debug_message | その他 | 便利 | show_debug_message(val); | 出力ウィンドウにデバッグ用のログを表示します。 |

