Game Maker Language リファレンス > 組み込み関数 用途別 > ゲームプレイ > move_contact_solid
move_contact_solid(dir,maxdist)
引数dir 方向にむかってソリッドオブジェクトに接するまで移動します。
引数maxdistで、最大移動幅を指定します。
「0」または「-1」を指定するとデフォルトである「1000」となります。
if !place_meeting(x, y + 1, obj_Floor) { move_contact_solid(270, -1); }
上記コードは真下に"obj_Floor"が存在するかどうかをチェックし、存在しなければsolideオブジェクトに衝突するまで下方向に最大1000pixel移動します。
座標が実数であると正確な座標に移動しなくなる可能性があります。例えば、383.0が衝突する座標だとした場合、381.5は382.5までしか移動しません。正確に移動させる場合、floor()で小数点以下を切り捨てるといいでしょう