ちゃんとプログラム読んでないから外してるかもしれないけど。 STX=0.5 STY=-0.5 みたいな場合もSTX+STYは0になるんだけど多分想定してないよね? ここは STX==0 && STY==0 で判定しないとダメなんじゃないかな。 !=の場合も同じようにね。