敵の方向転換の事で質問なのですが
主人公より後ろに敵がいる場合は右向き、
前からでてきたら左向きで出てこさす処理をしているのですが、
敵が上から出てきたとき、主人公と敵の位置(X座費用)が同じになった時に
敵が右にいるか左にいるか分からず常に右、左と向きの切り替えを続けて
そのまま突っ込んできます。
敵と主人公の位置が同じになった場合は敵の方向を右向きの状態で来さしたいんですが、
色々と試しましたが全く改善されません。
どなたか改善策を教えてくださいお願いします。
// 主人公との位置から現在の向きをだす
if( YuSyaPoz.x < AIPoz->x ){
m_NowDir = RIGHT;
}
else{
m_NowDir = LEFT;
}
敵の向き
Re:敵の向き
やっぱり…
理由とかわかりました。
移動量にもよりますが、移動させる文に横移動をさせない必要があります。
たとえば
if(teki_muki==0)//右向きのとき
teki_x+=teki_idouryou;
となっているなら
if(teki_muki==0){//右向きのとき
teki_x+=teki_idouryou;
if(p_x<=teki_x)//向き判定で左向きになったら。
teki_x=p_x;//プレイヤーと同じ座標にまで戻ります。
}
こんなのでどうでしょう?
===========
私が思った
理由についても
/*
主人公より後ろにいた敵が主人公を追い抜くと、敵は左向き
にかわります。そして主人公に向かってきます
*/
これには続きがありますよね。
常に主人公のほうに向かって移動するんですから、
左を向いた後次の移動で、右を向いてしまいます。
そして今度は左向きに…それが迷っているように見えたのではないでしょうか?
少なくとも私は、そんな状況に何度かなってしまったので…

理由とかわかりました。
移動量にもよりますが、移動させる文に横移動をさせない必要があります。
たとえば
if(teki_muki==0)//右向きのとき
teki_x+=teki_idouryou;
となっているなら
if(teki_muki==0){//右向きのとき
teki_x+=teki_idouryou;
if(p_x<=teki_x)//向き判定で左向きになったら。
teki_x=p_x;//プレイヤーと同じ座標にまで戻ります。
}
こんなのでどうでしょう?
===========
私が思った
理由についても
/*
主人公より後ろにいた敵が主人公を追い抜くと、敵は左向き
にかわります。そして主人公に向かってきます
*/
これには続きがありますよね。
常に主人公のほうに向かって移動するんですから、
左を向いた後次の移動で、右を向いてしまいます。
そして今度は左向きに…それが迷っているように見えたのではないでしょうか?
少なくとも私は、そんな状況に何度かなってしまったので…
