「下のプログラム」を正しく字下げ(インデント)すると、
コード:
if (Key[KEY_INPUT_R] == 1 && playerY == enemyY) {
lock = 1;
lockonMove = 1;
if (lockonMove > 0) {
++lockonMove;
}
if (lockonMove == 10) {
lockImge = lockonHandle[0];
}
else if (lockonMove == 20) {
lockImge = lockonHandle[1];
}
else if (lockonMove == 30) {
lockImge = lockonHandle[2];
}
else if (lockonMove == 40) {
lockImge = lockonHandle[1];
lockonMove = 1;
}
if (playerY != enemyY) {
lock = 0;
lockonMove = 0;
}
}
コード:
lockonMove = 1;
if (lockonMove > 0) {
++lockonMove;
}
この 3行は lockonMove = 2; と書き直せます。
そのあとの if else if の連続では、lockonMove が
10 か? 20 か? 30 か? 40 か? とチェックしていますが、
lockonMove は 2 ですから、どれにも該当しません。
何の処理もされないので、削除してかまいません。
最初に、if (... && playerY == enemyY) { で
この if 文の中に入っているので playerY == enemyY は真です。
したがって、次のコードは実行されません。
コード:
if (playerY != enemyY) {
lock = 0;
lockonMove = 0;
}
以上をまとめると、元のプログラムは次のようになります。
コード:
if (Key[KEY_INPUT_R] == 1 && playerY == enemyY) {
lock = 1;
lockonMove = 2;
}
最初 1 だった lockonMove の値が 2 になるだけですから、
一回 +1されるだけと言われるのは当然です。