08/05/27 01:16:07 il/v0kgX
>>85
1、衝突検知→wallに衝突した場合、衝突フラグをオン
//↓四角範囲指定でキャラの足元の座標を指定
if collision_rectangle(x+10,y+55,x+30,y+60,wall,true,false){wall_flag = 1}
//↑「wall」っていう名前の壁OBJを用意
else {wall_flag=0}//それ以外の場合は空中判定
//2、衝突フラグオンの場合、足元のOBJを調べて、重力とvspeed(縦速度)を0
// 更に、足元OBJのy座標に自OBJの座標を合わせる(こうすることですり抜け現象を回避)
if wall_flag ==1
{
col_id = (collision_rectangle(x+10,y+55,x+30,y+60,wall,true,false))//足元の足場OBJのID取得
if vspeed >= 0//落下、もしくは直立時のみ、座標を合わせる
{
vspeed = 0; //縦速度0
y = col_id.y-1;//足元の足場OBJの1マス上のy座標に合わせる
}
gravity = 0//条件がなんであろうと、とりあえず重力0
}
超大雑把だけど、↑のコード調整すればいけると思うよ
無駄に手順が多い気がするけど、これ以上スマートな方法知らないんです。。。
ちなみにこのまま使うと>>62みたいな足場になります。