とりあえずIF分ですが、僕が見た感じでは、 IF X < EX[I]+ES[I] && X >= EX[I] THEN のような気がする。つまりEX[I] + ES[I]は以前の座標になるはずなので、前の座標が自分より前で、今の座標が自分より後ろなら飛び越えたって感じね。 IF時のかつのアンドはANDより&&の方が理解せずに利用した際の誤動作が少ないと思うので&&の方がオススメです。