変数addattacktimeの関係している以下の部分を消してみたのですが、特に変化はなく、この部分が原因ではないとわかりましたが、原因がわかりません。
if (addattacktime <= 500 && --addattacktime > 0)//addattacktimeが0になるまでの間に攻撃があればaddattacktimeは20に戻る
{//★addattacktimeが500以下で0より大きい時—1されていく、そして500以下ならばかつ0より大きいならばずっと処理されるということ。
//addattackimage = addattackimage - 1;
if (Key[KEY_INPUT_K] == 1 && Kcount == 50 && enemyImage == enemyGHandle[5]) {//攻撃がキックだった場合
Kcount = Kcount - 50;//キーKを押すたびに50だけ引く
enemyImage = enemyGHandle[5];
if (enemyImage == enemyGHandle[5])//攻撃を食らうと右向きになるようにする
{
enemyHP = enemyHP - 50;
playerImage = playerGHandle[4];
addattacktime = 500;
}
}
}
if (addattacktime < 0) {//addattacktime == 0だと初期値と被ってしまうので0より小さいとした。
playerX = preplayerX;
playerImage = playerGHandle[4];
addattacktime = 0;//addattacktimeが0にると、元の位置に戻る
if (count < 50) ++count;//これにより連続で攻撃してもif (Key[KEY_INPUT_A] == 1 && enemyImage == enemyGHandle[5])を考慮して連続攻撃ができる!
//★あるフレームが進んでから画像がを動くまでを遅くした、ならば、あるフレームが進んだら数字も次の数字に移るまで遅くできるのは?と考えた。
//if (count < 50) ++frames;//framesが5で割りきれる時に+countが+1されいく。//countが50より小さい時、framesがフレームにより+1ずつされていき、10で割り切れる際にcountが50になるまで+1される、++により最初+1が追加され49かい+1されるので結果的にcountは50になる。
//if (frames % 10 == 0) {
// ++count; if (count > 50) { count = 50; }//★上限はないためcountが49より大きくなったらcount = 50により50にする。
//}
if (Kcount < 50) ++frames;
if (frames % 20 == 0) {
++Kcount; if (Kcount > 50) { Kcount = 50; }//★上限はないためcountが49より大きくなったらcount = 50により50にする。
}//★++が>よりも優先順位により優先されるため、というか単純に+1されいくため、その先で条件によって(&&とは違い強制ではなく)Kcount > 50ならばcount = 50となっただけである。
}
全体のコード