Advertisement
Guest User

Untitled

a guest
Jan 17th, 2020
377
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 75.47 KB | None | 0 0
  1. #include "DxLib.h"
  2. #include "key.h"
  3. #include "playerhennsuu.h"
  4. #include "talk.h"
  5. #include "taitolh.h"
  6.  
  7.  
  8.  
  9.  
  10.  
  11. void Player_Update() {
  12.     init_stage(); // ②stage, pos の初期化//車椅子の攻撃を可能にするために関数init_stage()で定義されたposを利用できるように内部に書いた。
  13.         //仮にこの関数に外に書いたとしたらposの定義する部分だけは//突進攻撃のif分の中に書かなければいけない。
  14.     gpUpdatePad();
  15.     if (stayhere > 0 && ++stayhere < 10) {
  16.         enemyX = 4, enemyY = 1;   // 敵の位置
  17.         playerX = 1, playerY = 1;  // 俺の位置
  18.     }
  19.     if (stayhere == 10) { stayhere = 0; }
  20.     //gpUpdateKey();
  21.     //init_stage(); // stage, pos の初期化 ステージ
  22.     //int gpUpdateKey();
  23.     if (Key[KEY_INPUT_X] == 1) { //キーXを押すとfunction_statusは0になる
  24.         function_status = 0;
  25.         Xkey = 1;
  26.     }
  27.  
  28.     if (Key[KEY_INPUT_Y] == 1 && Xkey == 1) { //キーYを押すとfunction_statusは1になる
  29.         Xkey = 0;
  30.         function_status = 1;//戦闘画面に戻す
  31.  
  32.     }//戦闘画面中は1とする
  33.               // キーの入力状態を取得 上のifで既にgpUpdateKey();があり、elseはif以外の情報は引き継ぐので再びgpUpdateKey();書く必要はなかった。
  34.             // 俺の移動
  35.     if (playermovelock == 0) {
  36.         if (Pad[PAD_RIGHT] == 1 && playerX < 2) { //キーを入力する以外にも押した後に早く画像を切り替えて足踏みするようにするために初期値にも1はあるがキーにもplayerMove=1を書いたり、キーを押したらどうしたいかをするためにplayerX++を書いている。
  37.             playerMove = 1;  playerX++; playerImage = playerGHandle[2]; nomove = 1;//最大まで右には二回しか進めないのでplayerX < 2と書いた。
  38.             zannzou = 30; zannzouA = 0; zannzouB = 0; zannzouC = 0;
  39.             zannzoulock = 1;
  40.             preplayerX = playerX - 1;//最大まで右には二回しか進めないのでplayerX < 2と書いた。
  41.             if (playerX != enemyX && playerY != enemyY) {
  42.                 preframe = 1;
  43.                 //DrawGraph(pos[playerY][playerX][0], pos[playerY][playerX][1], playerGHandle[11], true);
  44.                  //キーを入力する以外にも押した後に早く画像を切り替えて足踏みするようにするために初期値にも1はあるがキーにもplayerMove=1を書いたり、キーを押したらどうしたいかをするためにplayerX++を書いている。
  45.                     //preframe = 1;
  46.                     //preplayerX = playerX;
  47.  
  48.                     //pos[playerY][playerX][0]が画面上のX座標であり、playerXは画面上に描画するための変換機の比喩なので、こいつに+で数値を加えても意味はない。
  49.  
  50.                 //if (preframe > 0 && preframe < 20) { DrawGraph(pos[playerY][playerX][0] - 50, pos[playerY][playerX][1], playerGHandle[11], true); }
  51.             }
  52.         } //playerMove = 1;があると下に書いたplayerMoveより足踏みするplayerMoveが無いと初期値の1でそのまま足踏みするので遅く反応するのでは?
  53.         if (Pad[PAD_LEFT] == 1 && playerX > 0) {//キーにplayerMove=1を書くと初期値の1よりも早くキーに書いたplayerMoveの1が行くため早く足踏みに行くため、止まってから足踏みに行くまでの間にある向きを変える画像playerGHandle[2]が一瞬であるため、向きを変えるのが早く見えるのでは?足踏みを速く来るようにしたため。
  54.             playerMove = 1; playerX--; playerImage = playerGHandle[9];//まあ、足踏みさせなくても、ただ書くだけでも方向を十分早く変えれる
  55.             zannzouA = 30; zannzou = 0; zannzouB = 0; zannzouC = 0;
  56.             zannzoulock = 1;
  57.         }
  58.         if (Pad[PAD_UP] == 1 && playerY > 0) {
  59.             playerMove = 1; playerY--; playerImage = playerGHandle[2];
  60.             zannzouC = 15; zannzouA = 0; zannzou = 0; zannzouB = 0;
  61.             zannzoulock = 1;
  62.         }
  63.         if (Pad[PAD_DOWN] == 1 && playerY < 2) {
  64.             playerMove = 1; playerY++; playerImage = playerGHandle[8];
  65.             zannzouC = 0; zannzouA = 0; zannzou = 0; zannzouB = 15;
  66.             zannzoulock = 1;
  67.         }
  68.     }
  69.  
  70.     //Rが一度押された上でフレームを利用してループさせるためにif文を新しく外に書いたのだ。
  71.     if (Key[KEY_INPUT_R] == 1 && playerY == enemyY) {
  72.         DrawGraph(pos[enemyY][enemyX][0], pos[enemyY][enemyX][1],//多分ここはいらない下に描画するための関数を書くため
  73.             lockImge, FALSE);   // ロックマークの描画
  74.         lock = 1;//Key[KEY_INPUT_R] == 1 && playerY == enemyYの時、lockを1にする。lockを「何フレーム目の時」でも値を1として置いたため、条件式lockの入力キーAに呼び出せる。
  75.         lockonMove = 1;
  76.         //preenemyXX = enemyX;
  77.     }
  78.     if (lockonMove > 0) {//lockonMoveが0より大きいならば++lockonMoveをする、
  79.         ++lockonMove;
  80.     }
  81.     if (lockonMove == 10) {
  82.         lockImge = lockonHandle[0];//情報lockonMove == 10やlockonHandle[0]を引き継いで下に書いた描画関数に入るため、ここには関数に入れる情報だけ入るのだ。
  83.         //その時の情報lockonMove == 10やlockonHandle[0]以外の引き継がれたとうかその時の敵の座標なども関数に入る。関数が求めるものが入るので、関数に必要なものを揃える。
  84.     }
  85.     else if (lockonMove == 20) {
  86.         lockImge = lockonHandle[1];
  87.  
  88.     }
  89.     else if (lockonMove == 30) {
  90.         lockImge = lockonHandle[2];
  91.  
  92.  
  93.     }
  94.     else if (lockonMove == 40) {
  95.         lockImge = lockonHandle[1];
  96.         lockonMove = 1;
  97.     }
  98.     //playerY ==! enemyYとするとなぜかたまに反応しなかったりするのでplayerY != enemyYとした。
  99.     if (playerY != enemyY) {
  100.         lock = 0;
  101.         lockonMove = 0;//敵が移動した場合ロックオンの画像が消えるようにlockonMoveを0にする。
  102.     }
  103.  
  104.  
  105.  
  106.  
  107.  
  108.     //敵が目の前にいる際にそこに移動できないようにする。それと敵が後ろにいる際にそこに移動できないようにする。
  109.     if (playerX == enemyX && playerY == enemyY) {
  110.         if (Pad[PAD_RIGHT] == 1) {
  111.             playerX = enemyX - 1;
  112.             playerY = enemyY;
  113.             playerImage = playerGHandle[4];
  114.             zannzou = 30; zannzouA = 0; zannzouB = 0; zannzouC = 0;
  115.         }
  116.         else if (Pad[PAD_LEFT] == 1) {
  117.             playerX = enemyX + 1;
  118.             playerY = enemyY;
  119.             playerImage = playerGHandle[4];
  120.             zannzou = 0; zannzouA = 30; zannzouB = 0; zannzouC = 0;
  121.         }
  122.         else if (Pad[PAD_UP] == 1) {
  123.             playerX = enemyX;
  124.             playerY = enemyY + 1;
  125.             playerImage = playerGHandle[4];
  126.             zannzou = 0; zannzouA = 0; zannzouB = 0; zannzouC = 15;
  127.         }
  128.         else if (Pad[PAD_DOWN] == 1) {
  129.             playerX = enemyX;
  130.             playerY = enemyY - 1;
  131.             playerImage = playerGHandle[4];
  132.             zannzou = 0; zannzouA = 0; zannzouB = 15; zannzouC = 0;
  133.         }
  134.     }
  135.  
  136.     //playerY != enemyYよりY座標が異なる場合を表す、Y座標が異なる場合はlockの値は0になる。要はロックが解除されてしまう。
  137.     if (lock == 1) {
  138.         //lockmark = 0;//タバコ回復と被らないようにここに書いた
  139.         if (Key[KEY_INPUT_A] == 1 && count <= 50 && count >= 10 && addattacktimelock == 0) {  //殴る//(lock){}の中に書くとロックする度にcountが0になるので意味がない
  140.             //count++;  ここにcount書くとifの条件よりcountが0の時の下のlockやplayerX = enemyX - 1など条件になるため、++でcountが1になったらロックできても攻撃できないんだ
  141.             //ここのcountの情報がそのまま下の描画関数に渡されるだけ。
  142.             //if (count >= 0 && ++count > 40) {//countが0から15になるまでを一フレームで表しただけでは?ようはcountを0~1にするのに15フレームかかっただけでは?いや、単純にここにフレームは働いていないなので++count > 40と書いて39回行うはずがフレームが働かないので1しか上がっていないので一回しか攻撃が出来ないのだ
  143.             lockmark = 1;
  144.             lockonMove = 0;//アタックする時 ロックオンの画像が消えるように値を0にする。
  145.             preplayerX = playerX; // 元の位置を保持
  146.             playerX = enemyX - 1; // 俺は敵の眼前へ//敵の位置から-1して自分がいるときの位置にいた場合。
  147.             addplayerX = pos[playerY][preplayerX][0]; //アドアタックタイム中で相手の目の前に移動した後のマスを保存するための変数
  148.             addplayerY = pos[playerY][preplayerX][1];
  149.             if (playerX == enemyX - 1 && pos[playerY][preplayerX][1] == pos[enemyY][enemyX][1]) {
  150.                 preplayerX; playerImage = playerGHandle[4]; //敵の前に言ったら、移動する前の残像が残る。
  151. //after = 1;//アタック状態 ここまでをアタックとしてafter = 1と置いた。
  152. //enemyImage = enemyGHandle[5];//攻撃を食らうと右向きになるようにする
  153.                 count = count - 10;//キーAを押すたびに10だけ引く
  154.                 addattacktime = 500;
  155.                 zannzou = 50;
  156.                 enemysabunHP = 20;
  157.                 lockmark = 1;
  158.             }
  159.             //if (playerX == enemyX - 1&&enemyHP >= 100 && enemyHP < 300) { enemyHP = enemyHP - 50; }//if (Key[KEY_INPUT_A] == 1 && count <= 500)に直接enemyHP = enemyHP - 50;を書き込むか、殴るが成立した時にif (enemyGHandle[5]) { enemyHP = enemyHP - 50; }と書いても良い。
  160.             //if (playerX == enemyX - 1&& enemyHP < 100) { enemyHP2 = enemyHP2 - 50; }
  161.         }
  162.         if (Key[KEY_INPUT_K] == 1 && Kcount == 50 && count >= 0) {//攻撃がキックだった場合
  163.             lock = 0;//lock = 1の時の「lock!!」の描画を消すためにlockの値を0に変更。
  164.             lockonMove = 0;//アタックする時 ロックオンの画像が消えるように値を0にする。
  165.             preplayerX = playerX; // 元の位置を保持
  166.             playerX = enemyX - 1; // 俺は敵の眼前へ
  167.             addplayerX = playerX; //アドアタックタイム中で相手の目の前に移動した後のマスを保存するための変数
  168.             addplayerY = playerY;//追加攻撃をする各攻撃においてちゃんとこれを書かないといけない
  169.             if (playerX == enemyX - 1) {
  170.                 preplayerX; playerImage = playerGHandle[4]; //敵の前に言ったら、移動する前の残像が残る。
  171.                 enemyImage = enemyGHandle[5];
  172.                 Kcount = Kcount - 50;//キーKを押すたびに50だけ引く
  173.                 enemysabunHP = 50;
  174.                 zannzou = 60;
  175.                 addattacktime = 500;
  176.             }
  177.  
  178.         }
  179.  
  180.     }//if (Key[KEY_INPUT_A] == 1 && count == 50)と条件が被ると重複して10を引いてしまうのでそれ以外で押された場合として書いた。
  181.     //上のif文が成り立たなくても成り立つように、かつ被らないようにするためにelse ifで書いた。
  182.  
  183.  
  184.     //同時押しでの攻撃
  185.     //if (Key[KEY_INPUT_A] == 1 && Key[KEY_INPUT_K] == 1 && Wcount == 100) {//攻撃がキックだった場合
  186.         //lock = 0;//lock = 1の時の「lock!!」の描画を消すためにlockの値を0に変更。
  187.         //lockonMove = 0;//アタックする時 ロックオンの画像が消えるように値を0にする。
  188.         //preplayerX = playerX; // 元の位置を保持
  189.         //playerX = enemyX - 1; // 俺は敵の眼前へ
  190.         //if (playerX == enemyX - 1) { preplayerX; playerImage = playerGHandle[4]; }//敵の前に言ったら、移動する前の残像が残る。
  191.         //enemyImage = enemyGHandle[5];
  192.         //Wcount = Wcount - 100;//キーAとKを押すたびに50だけ引く
  193.         //enemyHP = enemyHP - 100;
  194.         //addattacktime = 500;
  195.  
  196.  
  197.     //}
  198.  
  199.     //銃を使った攻撃
  200.     //lockで条件を付けないとロックして殴る攻撃と被ってしまう。
  201.     if (Gfunction_status == 0) {
  202.         if (jyoicon == 1) {
  203.             if (Pad[PAD_1] == 1 && playerX > 0 && Gcount >= 1 && Gtime == 0 && Gkey == 1 && Pad[PAD_5] == 0)
  204.             {//「右」は今押された
  205.               //「右」が押されたときの処理
  206.                 Gtime = 1; //銃を撃ってからの経過時間を1にする
  207.                 Gcount = Gcount - 1; //残弾数を-1する
  208.                 playerImage = playerGHandle[7]; //真正面の状態にする
  209.                 if (playerY == enemyY && playerX + 1 == enemyX || playerY == enemyY && playerX + 2 == enemyX || playerY == enemyY && playerX + 3 == enemyX ||
  210.                     playerY == enemyY && playerX + 4 == enemyX || playerY == enemyY && playerX + 5 == enemyX) {//これで前に敵がいるときのみに攻撃が出来る。
  211.                     enemysabunHP = 100;
  212.                     enemyImage = enemyGHandle[5];
  213.                 }
  214.  
  215.             }
  216.         }
  217.  
  218.  
  219.         if (Gtime > 0) { //銃を撃ってからの経過時間が0より大きい場合のみ
  220.             ++Gtime; //銃を撃ってからの経過時間を+1する
  221.         }
  222.         if (Gtime == 20) { //銃を撃ってから1秒( 60 )経過したら
  223.             playerImage = playerGHandle[10]; //左横向きの状態にする
  224.         }
  225.         if (Gtime == 40) { //銃を撃ってから2秒( 120 )経過したら
  226.             playerImage = playerGHandle[4]; //右横向きの状態に戻す
  227.             Gtime = 0; //銃を撃ってからの経過時間を0に戻す
  228.         }
  229.         ///if (Gcount <= 0) { Gcount = 0; }//こいつによってGcountが負の値に進まずにいる。
  230.         if (Gcount <= 0) {  //銃の弾の数が0以下だったら
  231.             Gcount = 0;
  232.             GcountA = 1;//リロード中を描画するために作った変数
  233.             ++GcountZeroCounter;    //『銃の弾が0になってから経過したフレーム数をカウントする変数』を+1する
  234.             if (GcountZeroCounter >= 900) { //銃の弾が0になってから経過したフレーム数が15秒( 60 × 15 )経過したら
  235.                 Gcount = 15;    //銃の弾の数を15に増やす
  236.                 GcountZeroCounter = 0;  //次回のカウント処理のために『銃の弾が0になってから経過したフレーム数をカウントする変数』を0にする
  237.                 GcountA = 0;
  238.             }
  239.         }
  240.     }
  241.     //if (Gfunction_status == 0)の{}である。
  242.  
  243.     if (Gfunction_status == 1) {
  244.         if (Pad[PAD_1] == 1 && MGcount >= 1 && Gtime == 0 && Gkey == 2)
  245.  
  246.         {
  247.             MGframe = 1;
  248.         }
  249.         if (Pad[PAD_5] == 0 && MGcount > 0 && MGframe == 1)
  250.  
  251.         {
  252.             if (MGcount > 0 && MGframe == 1) {
  253.                 --MGcount;//マシンガンの弾が減っていき、かつ相手が同じ行にいるときに相手のHPが減る。そうかかないと一度マシンガンを使った後、ボタンを押していなくても敵が同じ行にいるだけで相手のHPが勝手に減る。
  254.                 ++MGtime;
  255.                 if (playerY == enemyY && playerX + 1 == enemyX || playerY == enemyY && playerX + 2 == enemyX || playerY == enemyY && playerX + 3 == enemyX ||
  256.                     playerY == enemyY && playerX + 4 == enemyX || playerY == enemyY && playerX + 5 == enemyX) {//if (Key[KEY_INPUT_G] == 1 && Gcount >= 1 && Gtime == 0 && Gkey == 2)の中ではKey[KEY_INPUT_] == 1の都合で押し続けても一回しか押さないようにしかカウントされないため、中には書かなかった。
  257.                     enemyHP = enemyHP - 2;
  258.                     enemyImage = enemyGHandle[5];
  259.                 }
  260.  
  261.             }
  262.  
  263.  
  264.             if (MGtime == 20) { //銃を撃ってから1秒( 60 )経過したら
  265.                 playerImage = playerGHandle[10]; //左横向きの状態にする
  266.             }
  267.             if (MGtime == 40) { //銃を撃ってから2秒( 120 )経過したら
  268.                 playerImage = playerGHandle[4]; //右横向きの状態に戻す
  269.                 MGtime = 0; //銃を撃ってからの経過時間を0に戻す
  270.             }
  271.             //if (MGcount > 0 && MGframe == 1 && Pad[PAD_1] == 1)
  272.  
  273.  
  274.  
  275.         }
  276.         //★押していない時は0になる。そうしないと垂れ流しになる。一回押すと値がMGcount > 0、MGframe == 1の条件を満たすので一回押しただけで連射できる
  277.         if (Pad[PAD_1] == 0 && MGcount > 0 && MGframe == 1)
  278.  
  279.         {
  280.             MGframe = 0; MGtime = 0;
  281.         }//キーGを押していない時は止まるようにする
  282.     }
  283.  
  284.  
  285.     //ワイヤーを使って相手を前の列に引っ張る
  286.     if (lock == 0) {
  287.         if (Key[KEY_INPUT_Y] == 1) {//playerX + 1 == enemyXより敵が自分の位置に+1するときの位置にいる場合を表す、なので多分playerX== enemyX-1でもいいと思う。
  288.             if (playerY == enemyY && playerX + 1 == enemyX || playerY == enemyY && playerX + 2 == enemyX || playerY == enemyY && playerX + 3 == enemyX ||
  289.                 playerY == enemyY && playerX + 4 == enemyX || playerY == enemyY && playerX + 5 == enemyX) {
  290.                 enemyX = 3;//敵を最前列に引っ張る
  291.             }
  292.         }
  293.     }
  294.     //ガード
  295.     if (lock == 0) {
  296.         if (Key[KEY_INPUT_P] == 1) {
  297.             protect = 1;
  298.         }
  299.     }
  300.     if (protect == 1) { ++protectcount; }
  301.     if (protectcount > 0 && protectcount < 50) {
  302.         protect = 1;
  303.     }if (protectcount == 50) { protect = 0; protectcount = 0; }
  304.  
  305.     //タバコ回復
  306.     if (lockmark == 0 && Key[KEY_INPUT_A] == 1) {
  307.         tabaco = 1;
  308.     }
  309.     if (lockmark == 0 && Key[KEY_INPUT_A] == !1) {
  310.         tabaco = 0; tabacocount = 0;//tabacoが0になっても増え続けたtabacocountは0になるようには書いていないため、0になるように左のようにtabacocount=0と明記する。
  311.     }
  312.     if (tabaco == 1) { ++tabacocount; }
  313.     if (tabacocount > 0 && tabacocount < 100) {
  314.         tabaco = 1;
  315.     }if (tabacocount == 100) { tabaco = 0; tabacocount = 0; playerHP = playerHP + 50; }
  316.  
  317.     //リロードさせるためのプログラム
  318.     //変数リロードでまとめたがなぜかマシンガンは0の時に変数MGcountAが1にならないので消した。まあ、こいつが無くても勝手にリロードできるのでこれでいい。
  319.     if (Gcount <= 0) {  //銃の弾の数が0以下だったら
  320.         Gcount = 0;
  321.         GcountA = 1;//リロード中を描画するために作った変数
  322.         ++GcountZeroCounter;    //『銃の弾が0になってから経過したフレーム数をカウントする変数』を+1する
  323.         if (GcountZeroCounter >= 900) { //銃の弾が0になってから経過したフレーム数が15秒( 60 × 15 )経過したら
  324.             Gcount = 15;    //銃の弾の数を15に増やす
  325.             GcountZeroCounter = 0;  //次回のカウント処理のために『銃の弾が0になってから経過したフレーム数をカウントする変数』を0にする
  326.             GcountA = 0;
  327.         }
  328.     }
  329.  
  330.  
  331.  
  332.     if (MGcount <= 0) { //銃の弾の数が0以下だったら
  333.         MGcount = 0;
  334.         MGcountA = 1;//リロード中を描画するために作った変数
  335.         ++MGcountZeroCounter;   //『銃の弾が0になってから経過したフレーム数をカウントする変数』を+1する
  336.         if (MGcountZeroCounter >= 1500) {   //銃の弾が0になってから経過したフレーム数が25秒( 60 × 25 )経過したら
  337.             MGcount = 200;  //銃の弾の数を15に増やす
  338.             MGcountZeroCounter = 0; //次回のカウント処理のために『銃の弾が0になってから経過したフレーム数をカウントする変数』を0にする
  339.             MGcountA = 0;
  340.         }
  341.     }
  342.  
  343.     //アドアタックタイムに関してのプログラム
  344.     //↓確認addattcktimeの—1について関係はない
  345.     //俺は敵の眼前へ言った後、このifの条件により続けて攻撃か元の位置に戻るかになる
  346.     if (addattacktime <= 500 && addattacktime > 0)//addattacktimeが0になるまでの間に攻撃があればaddattacktimeは20に戻る
  347.     {//★addattacktimeが500以下で0より大きい時—1されていく、そして500以下ならばかつ0より大きいならばずっと処理されるということ。
  348.         playerMove = 0;//アドアタックタイム中は足踏みをしないようにする
  349.         lockmark = 1;
  350.         --addattacktime;
  351.         addplayerX;
  352.         pos[playerY][preplayerX][0] = addplayerX;
  353.         pos[playerY][preplayerX][1] = addplayerY;
  354.         playerImage = playerGHandle[4];//アドアタックタイム中はずっと十字キーを押して動いたりしないように、前だけ見ているようにするためにした。
  355.         preframe = 0; preframeA = 0; preframeB = 0; preframeC = 0;
  356.         playermovelock = 1;//アドアタックタイム中は移動キーで動かないようにようにするためのもの
  357.         if (Key[KEY_INPUT_R] == 1) {
  358.             lock = 0;
  359.         }
  360.  
  361.         if (Key[KEY_INPUT_A] == 1 && count <= 40 && count >= 10 && playerX == enemyX - 1 && addattacktimelock == 1)//敵が右向きの時に続けてAを押すと連続攻撃ができる//相手がenemyImage == enemyGHandle[5]状態の時に他の攻撃もできるように他のキーも&&すればいい
  362.         {
  363.             count = count - 10;
  364.             playerX = enemyX - 1; // 俺は敵の眼前へ
  365.             addattacktime = 500;
  366.             enemyHP = enemyHP - 50;
  367.  
  368.             //after = 1;//アタック状態 ここまでをアタックとしてafter = 1と置いた。
  369.         }
  370.         if (Key[KEY_INPUT_K] == 1 && Kcount == 50 && count >= 0 && playerX == enemyX - 1)//敵が右向きの時に続けてAを押すと連続攻撃ができる//相手がenemyImage == enemyGHandle[5]状態の時に他の攻撃もできるように他のキーも&&すればいい
  371.         {
  372.             Kcount = Kcount - 50;
  373.             playerX = enemyX - 1; // 俺は敵の眼前へ
  374.             addattacktime = 500;
  375.             enemyHP = enemyHP - 20;
  376.  
  377.             //after = 1;//アタック状態 ここまでをアタックとしてafter = 1と置いた。
  378.         }
  379.     }
  380.     //pos[playerY][playerX + 1][0] == pos[enemyY][enemyX][0] && pos[playerY][playerX + 1][1] == pos[enemyY][enemyX + 1][1]
  381.  
  382.     if (addattacktime == 0) {
  383.         playerX = preplayerX;
  384.         playerImage = playerGHandle[4];
  385.         addattacktime = 501;//addattacktimeが0にると、元の位置に戻る
  386.         playerMove = 1;
  387.         lock = 0;//lock = 1の時の「lock!!」の描画を消すためにlockの値を0に変更。
  388.         lockmark = 0;//0にすることで元に戻った後は銃が使える。
  389.     }
  390.  
  391.     //とりあえず、攻撃の最中も上がるようにif (addattacktime == 501){}の外にif文を出した。
  392.  
  393.  
  394.  
  395.     if (addattacktime == 501) {
  396.         //★あるフレームが進んでから画像がを動くまでを遅くした、ならば、あるフレームが進んだら数字も次の数字に移るまで遅くできるのは?と考えた。
  397.         lockmark = 0;//ロックしていない状態でのAと被らないようにするための変数。
  398.         playermovelock = 0;
  399.         if (Kcount < 50) ++frames;//count=0,Kcount=0,frames=20
  400.         if (frames % 5 == 0) {               //framesが20なので条件を満たさない
  401.             ++Kcount;
  402.             if (Kcount > 50) {
  403.                 Kcount = 50;
  404.             }
  405.         }
  406.         if (count < 50) ++frames;             //count=0,Kcount=0,frames=19
  407.         if (frames % 20 == 0) {                //framesが20なので条件を満たす
  408.             ++count;                     //count=1,Kcount=0,frames=19
  409.             if (count > 50) {             //countが50以下なので満たさない
  410.                 count = 50;
  411.  
  412.             }
  413.         }
  414.  
  415.     }
  416.     //addattacktime中での通常攻撃と追加攻撃の区別のための変数を使ったプログラム
  417.     if (addattacktime < 500) {
  418.         addattacktimelock = 1;
  419.         lockmark = 0;
  420.     }
  421.     if (addattacktime < 1) {
  422.         addattacktime = 501;
  423.     }
  424.     if (addattacktime == 501) { addattacktimelock = 0; }
  425.  
  426.     //キーLを押したまま別のキーを押すと武器が切り替わる
  427.  
  428.     if (jyoicon == 1) {
  429.         if (Pad[PAD_5] == 1)
  430.         {//「四角」は今押された
  431.           //「四角」が押されたときの処理
  432.             Lcount = 1;
  433.         }
  434.  
  435.         //ここがbullさんので一フレーム以上でもいいが、一フレームだけ押しても他のボタンが押されるまで値が0になればよいのでこれでも動く、
  436.         //実験で上のif (Pad[PAD_5] == 1)の時に++Lcountと置くと一フレームだけ
  437.         //値が伸びるので押すたびに値が増えていく。
  438.         //まあ、仮に一フレームだけ0になっても意味が無いので、
  439.         //なので押していない間はずっと0になるようにサイトの長い条件かfanaさんので代用する。
  440.         if (Pad[PAD_5] == 0)
  441.         {//「四角」は今押された
  442.           //「四角」が押されたときの処理
  443.             Lcount = 0; Lframe = 0;
  444.         }
  445.  
  446.  
  447.  
  448.         //if (Key[KEY_INPUT_L] == !1) { Lcount = 0; }//キーLを離すとLcountは0になる。//これのせいでLcountが上がらなかった
  449.         if (Lcount > 0) {
  450.             if (Pad[PAD_1] == 1)//一度押したら押している間はずっとオンであるため値が一定ならいいが、
  451.                 //++Gfunction_statusよりGfunction_statusがずっと上がり続ける。なので高速で選択肢が動いてしまう。
  452.                 //なのでここだけは1フレームのみに動くBullさんか1フレームか押している間ずっと動く2つの方法をもつfanaさんのプログラムのどっちかをつかう。
  453.             {//「右」は今押された
  454.               //「右」が押されたときの処理
  455.                 Gtime = 0;
  456.                 ++Gfunction_status;
  457.                 ++Gkey;
  458.                 //Glock = 1;
  459.             }
  460.         }
  461.         if (Gkey > 2) { Gkey = 1; }
  462.         if (Gfunction_status > 1) { Gfunction_status = 0; }
  463.     }
  464.  
  465.     //コントローラでいうR2で界王拳状態になる
  466.     if (Key[KEY_INPUT_V] == 1) {
  467.         ++super;
  468.  
  469.     }
  470.     //界王拳状態でのプログラム
  471.     if (super > 0 && super < 500)
  472.     {
  473.         DrawFormatString(700, 700, GetColor(255, 0, 0), "superは%d,lockは%d", super, lock);
  474.         if (Key[KEY_INPUT_R] == 1) {
  475.             lock = 2;
  476.         }
  477.     }
  478.     //界王拳状態で相手をロックした場合の技
  479.     if (lock == 2) {
  480.         if (Key[KEY_INPUT_A] == 1) {
  481.             playerMove = 1;//界王拳状態での時は足踏みをしないようにする。
  482.             lockmark = 1;
  483.             lock = 0;//lock = 1の時の「lock!!」の描画を消すためにlockの値を0に変更。
  484.             lockonMove = 0;//アタックする時 ロックオンの画像が消えるように値を0にする。
  485.             preplayerX = playerX; // 元の位置を保持
  486.             playerX = enemyX - 1; // 俺は敵の眼前へ//敵の位置から-1して自分がいるときの位置にいた場合。
  487.             addplayerX = pos[playerY][preplayerX][0]; //アドアタックタイム中で相手の目の前に移動した後のマスを保存するための変数
  488.             addplayerY = pos[playerY][preplayerX][1];
  489.             playerMove = 0;//足踏みしないように0にする
  490.             if (playerX == enemyX - 1 && pos[playerY][preplayerX][1] == pos[enemyY][enemyX][1]) {
  491.                 playermovelock = 1;//アドアタックタイム中は移動できないようにする
  492.                 preplayerX; playerImage = playerGHandle[4];
  493.                 count = count - 10;//キーAを押すたびに10だけ引く
  494.                 addattacktime = 500;
  495.                 zannzou = 50;
  496.                 enemyHP = enemyHP - 50;
  497.                 lockmark = 1;
  498.             }
  499.         }
  500.     }
  501.     if (super > 0 && ++super > 500) {
  502.         super = 0;
  503.         lock = 0;
  504.     }
  505.  
  506.     //敵のHPが1ずつ減るようにするプログラム
  507.     //キーAが押されたままでも一回しか押していない時と同じなので偽となり、関数を呼んでいる時はキーAは押されていないので前のif文が偽となり、if文の中の関数が働かない。なので外に書いた。
  508.     if (--enemysabunHP >= 0) {
  509.         enemyHP = enemyHP - 1;
  510.  
  511.     }
  512.     if (enemysabunHP == 0) {
  513.  
  514.         enemysabunHP = 0;
  515.     }
  516.  
  517.  
  518.     // 敵の移動
  519.     if (enemymovelock == 0) {
  520.         int t = GetNowCount();
  521.         if (t >= nextMoveTime) { // 指定の時間が経ったら(1sごとに)
  522.             nextMoveTime = t + MOVE_INTERVAL; // 次回移動処理をする時刻
  523.             if (stopCount > 0) { // 停止中のとき
  524.                 stopCount--; // 止まっている残り時間(回数)を減らす
  525.             }
  526.             else { // 普通の状態のとき
  527.                 if (GetRand(99) < 10) { // たまに(10%の確率で)
  528.                     stopCount = GetRand(4); // 数秒間(1~5秒間)その場に止まる
  529.                     enemymove = 1;//敵が足踏みするようにするための変数
  530.                 }
  531.  
  532.                 else { // 9マス上のいずれかのパネルに移動させる①
  533.                     int cy = enemyY, cx = enemyX;
  534.                     do {
  535.                         enemyY = GetRand(2);
  536.                         enemyX = GetRand(2) + 3;
  537.                     } while (enemyX == cx && enemyY == cy ||
  538.                         enemyX == playerX && enemyY == playerY);
  539.                     enemyImage = enemyGHandle[10];
  540.                     enemyMove = 1;
  541.                     enemymove = 1;//敵が足踏みするようにするための変数
  542.                 }
  543.                 //移動する以外は攻撃してくる
  544.  
  545.                 //if(enemycount>0){ ++enemycount; }
  546.  
  547.                 //下の二つのif文以外でもenemycountは上がるので
  548.                 //★できればenemyattackが連続で起こると攻撃が途中で終わったりするが、これはランダム関数の問題なのか、それともenemyattackを工夫すればいいのか
  549.                 //他の攻撃もあるし、途中で攻撃が終わるのも仕方ないのかも、あるいは、確率の変数を一定時間新しい変数で書いたフレームないに確保して、その間で攻撃するのは?その攻撃をenemycountとするのは
  550.                 //確率の値が変わり、その値が入ってくる。これ以上
  551.                 ///if (enemyattack == 2) {rundumsavetime = 1;}//攻撃を一回ずつ小分けにするために作った。enemycount == GetRand(3)があるので++enemycountは意味がない。中にif分を書いても
  552.                 //enemycount=1の時にしか動かないので意味がない、if elseではif else内でのenemycountの働く意味がない。
  553.                 ///if (rundumsavetime > 0 && ++rundumsavetime < 5) { enemyattack = 0; enemycountframe = 0; enemycount = 0; }
  554.                 //★上のif文で他の変数の値を0で抑えることでも実行でない。多分、攻撃する奴は分岐しないでそのまま入ってくるため以下の分岐する奴と違い反応が早いのだろう。以下の奴でも外に書いた時は時は実際に値が入り、自分の目の前に来たが、中に書いた後は分岐ゆえに反応が遅くなり値が入らないため反応できていないのかもしれない、しかし仮に実行できたとしても攻撃する度にすべて0になってしまい何も起きずに、それを繰り返してしまうのでずっと0だ。
  555.                 //攻撃する度に{ enemyattack = 0; enemycountframe = 0; enemycount = 0; }になるのでダメだ。ずっと{ enemyattack = 0; enemycountframe = 0; enemycount = 0; }になっているのでだめ
  556.                 ///if (rundumsavetime == 5) { rundumsavetime = 0;}//この間は攻撃できないようにした。しかしこの期間中にenemycountはずっと上がるので使えない、//ここに++enemycountを入れると一回の攻撃で上がってしまい
  557.                 //上のやり方ではうまくいかない、これでも確率は働いてしまうので、確率の関数事態に働かなくては。
  558.  
  559.  
  560.  
  561.  
  562.             }//こいつが一番上のelseとつながっている。
  563.             //敵の攻撃は①の移動以外の場合として取り扱ったほうがスムーズに進む。
  564.             //弱攻撃
  565.             //移動する以外は攻撃してくる
  566.             if (enemyattacklock == 0 && GetRand(5) == 1) {//GetRand(30) < 30とすると攻撃する途中でやめたり、カウンタが2を超えて上がってしまったりする。
  567.                 enemyattack = 1;
  568.                 if (enemyattack == 1) {//if (enemyattack == 1)は別にいらない。
  569.                     enemyX = playerX + 1;
  570.                     enemyY = playerY;
  571.                     preenemyX = enemyX;
  572.                     preenemyY = enemyY;
  573.                     ++enemycount;
  574.                     enemyattacklock = 1;
  575.                 }
  576.             }
  577.             if (enemyattacklock == 1 && enemyattack > 0) {
  578.                 enemyattack++;
  579.                 enemyX = preenemyX;
  580.                 enemyY = preenemyY;
  581.                 enemyattackB = 0;
  582.                 if (enemyattack == 4 && enemyX == playerX + 1 && enemyY == playerY && protect == 0) {//これだとif (enemyattack > 0)の時に得た敵のマスの情報をenemyattackが3の時にしか渡さないので、それ以外の2とかの時は敵陣にいるときもある。
  583.                     playerHP = playerHP - 50; playerImage = playerGHandle[11];
  584.                     enemyX = preenemyX;
  585.                     enemyY = preenemyY;
  586.                     enemyattackB = 0;
  587.                     enemyattacklock = 0;
  588.                 }if (enemyattack == 4) { enemyattack = 0; enemyattacklock = 0; }
  589.                 else if (enemyattack == 4 && enemyX == playerX + 1 && enemyY == playerY && protect == 1) {//ガードしていた場合攻撃を食らわない。
  590.                     playerHP = playerHP - 0;
  591.                     enemyattacklock = 0;
  592.                 }
  593.             }
  594.  
  595.             //下の二つのif文以外でもenemycountは上がるので
  596.             //★できればenemyattackが連続で起こると攻撃が途中で終わったりするが、これはランダム関数の問題なのか、それともenemyattackを工夫すればいいのか
  597.             //他の攻撃もあるし、途中で攻撃が終わるのも仕方ないのかも、あるいは、確率の変数を一定時間新しい変数で書いたフレームないに確保して、その間で攻撃するのは?その攻撃をenemycountとするのは
  598.             //確率の値が変わり、その値が入ってくる。これ以上
  599.             ///if (enemyattack == 2) {rundumsavetime = 1;}//攻撃を一回ずつ小分けにするために作った。enemycount == GetRand(3)があるので++enemycountは意味がない。中にif分を書いても
  600.             //enemycount=1の時にしか動かないので意味がない、if elseではif else内でのenemycountの働く意味がない。
  601.             ///if (rundumsavetime > 0 && ++rundumsavetime < 5) { enemyattack = 0; enemycountframe = 0; enemycount = 0; }
  602.             //★上のif文で他の変数の値を0で抑えることでも実行でない。多分、攻撃する奴は分岐しないでそのまま入ってくるため以下の分岐する奴と違い反応が早いのだろう。以下の奴でも外に書いた時は時は実際に値が入り、自分の目の前に来たが、中に書いた後は分岐ゆえに反応が遅くなり値が入らないため反応できていないのかもしれない、しかし仮に実行できたとしても攻撃する度にすべて0になってしまい何も起きずに、それを繰り返してしまうのでずっと0だ。
  603.             //攻撃する度に{ enemyattack = 0; enemycountframe = 0; enemycount = 0; }になるのでダメだ。ずっと{ enemyattack = 0; enemycountframe = 0; enemycount = 0; }になっているのでだめ
  604.             ///if (rundumsavetime == 5) { rundumsavetime = 0;}//この間は攻撃できないようにした。しかしこの期間中にenemycountはずっと上がるので使えない、//ここに++enemycountを入れると一回の攻撃で上がってしまい
  605.             //上のやり方ではうまくいかない、これでも確率は働いてしまうので、確率の関数事態に働かなくては。
  606.  
  607.             if (enemyattacklock2 == 0 && GetRand(8) == 2) {
  608.                 enemyattackB = 1;
  609.                 if (enemyattackB == 1) {//if (enemyattackB == 1)は別にいらない。
  610.                     enemyX = playerX + 1;
  611.                     enemyY = playerY;
  612.                     preenemyX = enemyX;
  613.                     preenemyY = enemyY;
  614.                     ++enemycount;
  615.                     enemyattacklock2 = 1;
  616.                 }
  617.             }
  618.             if (enemyattackB > 0) {
  619.                 enemyattackB++;
  620.                 enemyX = preenemyX;
  621.                 enemyY = preenemyY;
  622.                 enemyattack = 0;
  623.                 if (enemyattackB == 3 && enemyX == playerX + 1 && enemyY == playerY && protect == 0) {//これだとif (enemyattack > 0)の時に得た敵のマスの情報をenemyattackが3の時にしか渡さないので、それ以外の2とかの時は敵陣にいるときもある。
  624.                     playerHP = playerHP - 100; playerImage = playerGHandle[11];
  625.                     enemyX = preenemyX;
  626.                     enemyY = preenemyY;
  627.                     enemyattack = 0;
  628.                     enemyattacklock2 = 0;
  629.                 }if (enemyattackB == 3) { enemyattackB = 0; enemyattacklock2 = 0; }
  630.                 else if (enemyattackB == 3 && enemyX == playerX + 1 && enemyY == playerY && protect == 1) {//ガードしていた場合攻撃を食らわない。
  631.                     playerHP = playerHP - 0; enemyattacklock2 = 0;
  632.                 }
  633.             }
  634.             if (enemycount > 2) { ++enemycountframe; }//5回目になった瞬間に実行するので2回まで攻撃してくるとなる。攻撃が途中で終わってしまうことを考えると3では少ないので5でもいい
  635.             //if (enemycount == GetRand(3))
  636.                 //if(enemycount == 1|| enemycount == 2|| enemycount == 3)++enemycountframe;//ランダムでも動くが攻撃する頻度が減るのでランダムでない方がいいかも。
  637.             if (enemycountframe > 0 && ++enemycountframe < 10) { enemyattack = 0; enemycount = 0; enemyattackB = 0; }//enemycountframeが0から0までの間はenemyattackを0のままにして、enemyattackができないようにする
  638.             if (enemycountframe == 10) { enemycountframe = 0; }//ここにもenemycount = 0;を書いていた。
  639.  
  640.  
  641.             if (enemycount == 0) { // 9マス上のいずれかのパネルに移動させる
  642.                 int cy = enemyY, cx = enemyX;
  643.                 do {
  644.                     enemyY = GetRand(2);
  645.                     enemyX = GetRand(2) + 3;
  646.                 } while (enemyX == cx && enemyY == cy ||
  647.                     enemyX == playerX && enemyY == playerY);
  648.                 enemyImage = enemyGHandle[10];
  649.                 enemyMove = 1;
  650.             }
  651.             //突進攻撃
  652.             if (enemyattack3 == 0) { a = GetRand(10); }//enemyattack3が0の時にランダムが動く。
  653.             if (a >= 0) { a = GetRand(10); }
  654.             if (enemyattack4 == 0) { b = GetRand(10); }//enemyattack4が0の時にランダムが動く。
  655.             if (b >= 0) { b = GetRand(10); }
  656.             if (enemyattack5 == 0) { d = GetRand(10); }//enemyattack5が0の時にランダムが動く。
  657.             if (d >= 0) { d = GetRand(10); }
  658.  
  659.             //投げ攻撃
  660.             if (randamulock == 0)
  661.             {
  662.                 aa = GetRand(10);
  663.             }
  664.         }
  665.     }
  666.  
  667.  
  668.     //多分主人公の足踏みのプログラム
  669.     if (playerMove > 0) {//1フレームで処理を終わらせるためifの後はelse ifを使った。//フレームがあってもplayerMove++を書かないと1ずつ上がらない。playerMove++をフレームの60回ループするするところに書くことで以下のように書いて足踏みしている画像が描けた。
  670.         playerMove++;//60フレームの中で、このifで条件(playerMove > 0)が真であるためplayerMove++を「フレーム」と「条件式」により繰り返しplayerMove++して、
  671.         if (playerMove == 10)//以前の文を否定しないelse ifが次にあるためplayerMoveの情報を引き継ぎplayerMove == 20となるまで繰り返しplayerMove++をした。次にもelse ifがあるので同様、、、
  672.         {
  673.             playerImage = playerGHandle[4];
  674.         }
  675.         else if (playerMove == 30)//条件式として書くため=は==と書いた。//else ifによりplayerMoveが20を超えて(20の場合を否定し)30の場合を表す。
  676.         {
  677.             playerImage = playerGHandle[5];
  678.         }
  679.         else if (playerMove == 50)//30まで上がったものが40に上がった時、playerGHandle[4]になる。if文の連続では文法のルールで前の文を否定するため連続的に画像が流れず足踏みできない、なのでelse ifにしたのだ。
  680.         {
  681.             playerImage = playerGHandle[4];
  682.         }
  683.         else if (playerMove == 70) {//下に書いているように60フレームないに納めないといけないため、50まで上がったところで終わっている。もともと60 * 4と書いた
  684.             playerImage = playerGHandle[3];//上に書いてることには誤りがある、60フレームで1sなだけ、超えてもいい。
  685.         }
  686.         //★70から80になり、0に戻り、その10フレーム後に別の画像になるため、要は別の画像になるまで、playerMove == 10になるまでは総合で20フレーム分は画像3のままでまたいでいるため他のフレームも20の間隔であるため自然に見えるのだ。
  687.         else if (playerMove == 80) {
  688.             playerMove = 1;
  689.         }
  690.     }
  691.  
  692.     //多分敵の足踏みのプログラム
  693.     if (enemyMove > 0) {//1フレームで処理を終わらせるためifの後はelse ifを使った。//フレームがあってもplayerMove++を書かないと1ずつ上がらない。playerMove++をフレームの60回ループするするところに書くことで以下のように書いて足踏みしている画像が描けた。
  694.         enemyMove++;//60フレームの中で、このifで条件(playerMove > 0)が真であるためplayerMove++を「フレーム」と「条件式」により繰り返しplayerMove++して、
  695.         if (enemyMove == 10)//以前の文を否定しないelse ifが次にあるためplayerMoveの情報を引き継ぎplayerMove == 20となるまで繰り返しplayerMove++をした。次にもelse ifがあるので同様、、、
  696.         {
  697.             enemyImage = enemyGHandle[11];
  698.         }
  699.         else if (enemyMove == 30)//条件式として書くため=は==と書いた。//else ifによりplayerMoveが20を超えて(20の場合を否定し)30の場合を表す。
  700.         {
  701.             enemyImage = enemyGHandle[10];
  702.         }
  703.         else if (enemyMove == 50)//30まで上がったものが40に上がった時、playerGHandle[4]になる。if文の連続では文法のルールで前の文を否定するため連続的に画像が流れず足踏みできない、なのでelse ifにしたのだ。
  704.         {
  705.             enemyImage = enemyGHandle[9];
  706.         }
  707.         else if (enemyMove == 70) {//下に書いているように60フレームないに納めないといけないため、50まで上がったところで終わっている。もともと60 * 4と書いた
  708.             enemyImage = enemyGHandle[10];//上に書いてることには誤りがある、60フレームで1sなだけ、超えてもいい。
  709.         }
  710.         else if (enemyMove == 80) {
  711.             enemyMove = 1;//
  712.         }
  713.     }
  714.  
  715. }
  716.  
  717.  
  718. //バトルの時に描画するもの
  719. void Player_Draw() {
  720.  
  721.     if (gamenidou == 1) {
  722.         //battle card[];
  723.         if (hyouzi == 0) {
  724.             DrawFormatString(0, 0, GetColor(255, 0, 0), " gamenidouは%d,senntakuは%d", gamenidou, senntaku);
  725.             DrawFormatString(50, 140, GetColor(255, 0, 0), "→");
  726.             DrawFormatString(100, 140, GetColor(255, 0, 0), "攻撃方法の選択画面 (xをプッシュ)");
  727.             DrawFormatString(100, 200, GetColor(255, 0, 0), "バトルカードの選択を終わる");
  728.         }
  729.         if (Key[KEY_INPUT_DOWN] == 1) {
  730.             ++senntaku;
  731.         }
  732.         if (senntaku == 1) {
  733.             hyouzi = 1;
  734.             DrawFormatString(0, 0, GetColor(255, 0, 0), " senntakuは%d", senntaku);
  735.             DrawFormatString(50, 200, GetColor(255, 0, 0), "→");
  736.             DrawFormatString(100, 140, GetColor(255, 0, 0), "攻撃方法の選択画面 (xをプッシュ)");
  737.             DrawFormatString(100, 200, GetColor(255, 0, 0), "バトルカードの選択を終わる");
  738.             if (Key[KEY_INPUT_B] == 1) {
  739.                 gamenidou = 0;//戦闘画面に戻る
  740.                 senntaku = 0;
  741.                 hyouzi = 0;
  742.             }
  743.         }
  744.         //攻撃手段を選んでいる最中は0とする
  745.         ScreenFlip();  // 裏画面を表画面に反映
  746.     }
  747.  
  748.     if (gamenidou == 0) {
  749.         // ムービー映像を画面いっぱいに描画します
  750.  
  751.         //DrawExtendGraph(0, 0, 1770, 1580, MovieGraphHandle2, FALSE);
  752.         DrawExtendGraph(313, 0, 1447, 335, MovieGraphHandle, FALSE);
  753.  
  754.         // ウエイトをかけます、あまり速く描画すると画面がちらつくからです
  755.         WaitTimer(0);//この部分の数値を上げると敵の攻撃が遅くなる。
  756.         //背景の動画
  757.         //PlayMovie("180half_f.gif", 1, DX_MOVIEPLAYTYPE_NORMAL);
  758.         // ステージの描画  ★function_status == 0の場合ではないし、0か1の二択しかため、function_statusの初期値は1であるためif (function_status == 0)は除外されelseの方が描画される。
  759.         int stageColor = GetColor(160, 64, 64);
  760.         for (int i = 0; i < 4; i++)
  761.             DrawLine(stage[i][0][0], stage[i][0][1],
  762.                 stage[i][6][0], stage[i][6][1], stageColor, 15);//座標stage[0][0][0],stage[0][0][1]から縦の方に座標stage[0][6][0],stage[0][6][1]の間の線を引く
  763.         for (int j = 0; j < 7; j++)
  764.             DrawLine(stage[0][j][0], stage[0][j][1],
  765.                 stage[3][j][0], stage[3][j][1], stageColor, 5);//stage[0][0][0],stage[0][0][1]から横の方に座標stage[3][0][0],stage[3][0][1]の間の線を引く
  766.  
  767.         //右コマンドの残像//原因はif (zannzou < 1) {zannzou = 0; zannzoulock = 0;}の部分でした。if (zannzou == 1) {zannzou = 0; zannzoulock = 0;}
  768.         if (zannzou <= 30 && zannzou > 0) { //★残像を出すためにRキーでAを押したら変数zannzouが20になり、zannouの変数が0より大きいならば—1をしていき、その間だけ画像を描画する。
  769.             --zannzou;
  770.             DrawRotaGraph(pos[playerY][playerX][0] + 20 - 18 * zannzou / 2, pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  771.         }//移動した一瞬に元の位置に自分を描画したい、しかしうまく機能していない。
  772.         ///★多分一瞬過ぎるのであえてcount < 8と範囲を付けることでほんの一瞬だが残像が見えるようにした。
  773.         ///攻撃してcountが50に溜まるまでの期間を利用した。
  774.         if (zannzou <= 25 && zannzou > 0) {
  775.             DrawRotaGraph(pos[playerY][playerX][0] + 20 - 14 * zannzou / (11 / 5), pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  776.         }
  777.         if (zannzou <= 21 && zannzou > 0) {
  778.             DrawRotaGraph(pos[playerY][playerX][0] + 20 - 10 * zannzou / (24 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  779.         }
  780.         if (zannzou <= 18 && zannzou > 0) {
  781.             DrawRotaGraph(pos[playerY][playerX][0] + 20 - 6 * zannzou / (26 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  782.         }
  783.         if (zannzou <= 16 && zannzou > 0) {
  784.             DrawRotaGraph(pos[playerY][playerX][0] + 20 - 1 * zannzou / (28 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  785.         }
  786.         if (zannzou <= 6 && zannzou > 0) {
  787.             DrawRotaGraph(pos[playerY][playerX][0] + 20 - zannzou / 3, pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  788.             if (zannzou <= 1) {
  789.                 zannzou = 0;
  790.                 zannzoulock = 0;
  791.             }
  792.         }
  793.  
  794.         //移動する際の前のマスに残像を残す(右移動の場合)
  795.         //if (zannzou <= 30 && zannzou > 20) {
  796.             //DrawRotaGraph(pos[playerY][preplayerX][0], pos[playerY][playerX][1], 2.0, 0, playerImage, TRUE);
  797.  
  798.         //}
  799.  
  800.  
  801.         //左コマンドの残像
  802.         if (zannzouA <= 30 && zannzouA > 0) { //★残像を出すためにRキーでAを押したら変数zannzouが20になり、zannouの変数が0より大きいならば—1をしていき、その間だけ画像を描画する。
  803.             --zannzouA;
  804.             DrawRotaGraph(pos[playerY][playerX][0] + 20 + 18 * zannzouA / 2, pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  805.         }//移動した一瞬に元の位置に自分を描画したい、しかしうまく機能していない。
  806.         ///★多分一瞬過ぎるのであえてcount < 8と範囲を付けることでほんの一瞬だが残像が見えるようにした。
  807.         ///攻撃してcountが50に溜まるまでの期間を利用した。
  808.         if (zannzouA <= 25 && zannzouA > 0) {
  809.             DrawRotaGraph(pos[playerY][playerX][0] + 20 + 14 * zannzouA / (11 / 5), pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  810.         }
  811.         if (zannzouA <= 21 && zannzouA > 0) {
  812.             DrawRotaGraph(pos[playerY][playerX][0] + 20 + 10 * zannzouA / (24 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  813.         }
  814.         if (zannzouA <= 18 && zannzouA > 0) {
  815.             DrawRotaGraph(pos[playerY][playerX][0] + 20 + 6 * zannzouA / (26 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  816.         }
  817.         if (zannzouA <= 16 && zannzouA > 0) {
  818.             DrawRotaGraph(pos[playerY][playerX][0] + 20 + 1 * zannzouA / (28 / 10), pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  819.         }
  820.         if (zannzouA <= 6 && zannzouA > 0) {
  821.             DrawRotaGraph(pos[playerY][playerX][0] + 20 + zannzouA / 3, pos[playerY][playerX][1], 2.0, 0, playerGHandle[0], TRUE);
  822.             if (zannzouA <= 1) {
  823.                 zannzouA = 0;
  824.                 zannzoulock = 0;
  825.             }
  826.         }
  827.  
  828.         //下コマンドの残像
  829.         if (zannzouB <= 15 && zannzouB > 0) { //★残像を出すためにRキーでAを押したら変数zannzouが20になり、zannouの変数が0より大きいならば—1をしていき、その間だけ画像を描画する。
  830.             --zannzouB;
  831.             DrawRotaGraph(pos[playerY][playerX][0] + 30 + 2 * zannzouB / 2, pos[playerY][playerX][1] - 2.5 * zannzouB, 2.0, 0, playerGHandle[0], TRUE);
  832.         }
  833.         if (zannzouB <= 13 && zannzouB > 0) {
  834.             DrawRotaGraph(pos[playerY][playerX][0] + 30 + 2 * zannzouB / 2.5, pos[playerY][playerX][1] - 3 * zannzouB / 1.5, 2.0, 0, playerGHandle[0], TRUE);
  835.         }
  836.         if (zannzouB <= 11 && zannzouB > 0) {
  837.             DrawRotaGraph(pos[playerY][playerX][0] + 30 + 2 * zannzouB / 3, pos[playerY][playerX][1] - 3 * zannzouB / 2, 2.0, 0, playerGHandle[0], TRUE);
  838.         }
  839.         if (zannzouB <= 9 && zannzouB > 0) {
  840.             DrawRotaGraph(pos[playerY][playerX][0] + 30 + 2 * zannzouB / 3.5, pos[playerY][playerX][1] - 3 * zannzouB / 2.5, 2.0, 0, playerGHandle[0], TRUE);
  841.         }
  842.         if (zannzouB <= 7 && zannzouB > 0) {
  843.             DrawRotaGraph(pos[playerY][playerX][0] + 30 + 2 * zannzouB / 4, pos[playerY][playerX][1] - 3 * zannzouB / 3, 2.0, 0, playerGHandle[0], TRUE);
  844.         }
  845.         if (zannzouB <= 3 && zannzouB > 0) {
  846.             DrawRotaGraph(pos[playerY][playerX][0] + 30 + 2 * zannzouB / 4.5, pos[playerY][playerX][1] - 3 * zannzouB / 3.5, 2.0, 0, playerGHandle[0], TRUE);
  847.             if (zannzouB <= 1) {
  848.                 zannzouB = 0;
  849.                 zannzoulock = 0;
  850.             }
  851.         }
  852.  
  853.         //上のコマンドの残像
  854.         if (zannzouC <= 15 && zannzouC > 0) { //★残像を出すためにRキーでAを押したら変数zannzouが20になり、zannouの変数が0より大きいならば—1をしていき、その間だけ画像を描画する。
  855.             --zannzouC;
  856.             DrawRotaGraph(pos[playerY][playerX][0] + 30 - 5 * zannzouC / 5, pos[playerY][playerX][1] + 2.5 * zannzouC / 4, 2.0, 0, playerGHandle[0], TRUE);
  857.         }
  858.         if (zannzouC <= 3 && zannzouC > 0) {
  859.             DrawRotaGraph(pos[playerY][playerX][0] + 30 - 5 * zannzouC / 4.5, pos[playerY][playerX][1] + 3 * zannzouC / 3.5, 2.0, 0, playerGHandle[0], TRUE);
  860.             if (zannzouC <= 1) {
  861.                 zannzouC = 0;
  862.                 zannzoulock = 0;
  863.             }
  864.         }
  865.         if (zannzouC <= 7 && zannzouC > 0) {
  866.             DrawRotaGraph(pos[playerY][playerX][0] + 30 - 5 * zannzouC / 4, pos[playerY][playerX][1] + 3 * zannzouC / 3, 2.0, 0, playerGHandle[0], TRUE);
  867.         }
  868.         if (zannzouC <= 9 && zannzouC > 0) {
  869.             DrawRotaGraph(pos[playerY][playerX][0] + 30 - 5 * zannzouC / 3.5, pos[playerY][playerX][1] + 3 * zannzouC / 2.5, 2.0, 0, playerGHandle[0], TRUE);
  870.         }
  871.         if (zannzouC <= 11 && zannzouC > 0) {
  872.             DrawRotaGraph(pos[playerY][playerX][0] + 30 - 5 * zannzouC / 3, pos[playerY][playerX][1] + 3 * zannzouC / 2, 2.0, 0, playerGHandle[0], TRUE);
  873.         }
  874.         if (zannzouC <= 13 && zannzouC > 0) {
  875.             DrawRotaGraph(pos[playerY][playerX][0] + 30 - 5 * zannzouC / 2.5, pos[playerY][playerX][1] + 3 * zannzouC / 1.5, 2.0, 0, playerGHandle[0], TRUE);
  876.         }
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.         // 俺キャラ(敵の目の前に移動する際の残像)の描画
  885.  
  886.  
  887.         //敵を描画
  888.         DrawExtendGraph(pos[enemyY][enemyX][0] - 14, pos[enemyY][enemyX][1] - 66, pos[enemyY][enemyX][0] + 64, pos[enemyY][enemyX][1] + 66, enemyImage, TRUE);
  889.  
  890.         //主人公を描画
  891.         //DrawExtendGraph(pos[playerY][playerX][0] - 14, pos[playerY][playerX][1] - 66, pos[playerY][playerX][0] + 64, pos[playerY][playerX][1] + 66, playerImage, TRUE);
  892.         //↓回転させる関数の方で倍にした奴。
  893.         if (zannzoulock == 0) { DrawRotaGraph(pos[playerY][playerX][0] + 20, pos[playerY][playerX][1], 5.0, 0, playerImage, TRUE); }
  894.         //試しのドット画像を使った部分
  895.         //LoadGraphScreen(pos[playerY][playerX][0]-50, pos[playerY][playerX][1]-100, "image2 (1).jpeg", TRUE); // 画像を描画する
  896.  
  897.  
  898.  
  899.         //自分と敵が重なるようにしないためのプログラム
  900.         if (playerY == enemyY - 1 && playerX == enemyX) {
  901.             DrawGraph(pos[playerY][playerX][0], pos[playerY][playerX][1],//DrawGraphの関数自体の置いた順番に先に奥に描画されるので左のように書く。
  902.                 playerImage, true);  // 俺キャラの描画
  903.             DrawGraph(pos[enemyY][enemyX][0], pos[enemyY][enemyX][1],
  904.                 enemyImage, true);   // 敵キャラの描画
  905.         }
  906.         if (playerY == enemyY + 1 && playerX == enemyX) {
  907.             DrawGraph(pos[enemyY][enemyX][0], pos[enemyY][enemyX][1],
  908.                 enemyImage, true);   // 敵キャラの描画
  909.             DrawGraph(pos[playerY][playerX][0], pos[playerY][playerX][1],
  910.                 playerImage, true);  // 俺キャラの描画
  911.         }
  912.         //投げ攻撃
  913.         if (aa == 2) {
  914.             A = 2;
  915.             stopenemy = 1;
  916.             randamulock = 0;
  917.         }
  918.         if (A == 2) {
  919.             aa = 0;//if (a == 2)が働き、if (A == 2)の文が働き3つの画像が同時に描画されるバグを防ぐためにaを0にした。
  920.             randamulock = 1;//ランダム関数が影響しないためのロック
  921.             preenemyX3 = pos[enemyY][enemyX][0] - 20;//移動前の座標を保存する、敵の座標を保存
  922.             preenemyY3 = pos[enemyY][enemyX][1] - 90;//これで手で投げているように見える
  923.             ++A;
  924.         }
  925.         if (A == 3) {
  926.             ++kakudoA;
  927.             if (kakudoA % 3 == 2) {
  928.                 ++kakudoB;
  929.             }
  930.             ++kasokudo;
  931.             //preenemyX3 = preenemyX3 - kasokudo;//実験用
  932.             preenemyX3A = preenemyX3 - kasokudo;//座標に+1後のモノをpreenemyX3Aとした
  933.             preenemyX3B = preenemyX3 - preenemyX3A;//後と前(固定された座標)を引いて、その差分をpreenemyX3Bとした
  934.             test = preenemyX3B * 18;
  935.             Y = -(test ^ 2);
  936.             preenemyY3A = preenemyY3 + Y;
  937.             //DrawGraph(preenemyX3A - 20 * kasokudo, preenemyY3A + 2 * kasokudo, kikennhanndle[1], true);
  938.             DrawRotaGraph(preenemyX3A - 20 * kasokudo, preenemyY3A + 2 * kasokudo, 1.0, 0 - kakudoB, kikennhanndle[1], TRUE);
  939.             DrawRotaGraph(preenemyX3A - 10 * kasokudo, preenemyY3A + 4 * kasokudo, 1.0, 0 - kakudoB, kikennhanndle[1], TRUE);
  940.             DrawRotaGraph(preenemyX3A - 15 * kasokudo, preenemyY3A + 3 * kasokudo, 1.0, 0 - kakudoB, kikennhanndle[1], TRUE);
  941.         }
  942.         if (kasokudo > 15) {
  943.             kasokudo = 15;
  944.             A = 4;
  945.             randamuzahyoulockA = 0;
  946.             kakudoA = 0;
  947.             kakudoB = 0;
  948.         }
  949.         if (randamuzahyoulockA == 0) {
  950.             if (A == 4) {
  951.                 randamumasuX = 0, randamumasuY = GetRand(2);
  952.                 randamumasuXA = 1, randamumasuYA = GetRand(2);
  953.                 randamumasuXB = 2, randamumasuYB = GetRand(2);
  954.                 pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1];
  955.                 //DrawGraph(pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1], kikennhanndle[1], true);
  956.                 ++randamuzahyou;
  957.                 randamuzahyoukeisann = 1;
  958.             }
  959.         }
  960.         if (randamuzahyoukeisann == 1) {
  961.             ++kakudo;
  962.             if (kakudo % 3 == 2) {
  963.                 ++kakudo2;
  964.             }
  965.             ++randamuzahyoukeisannhiki;
  966.             //DrawGraph(pos[randamumasuY][randamumasuX][0] + 100 - 4 * randamuzahyoukeisannhiki, pos[randamumasuY][randamumasuX][1] - 200 + 8 * randamuzahyoukeisannhiki, kikennhanndle[1], true);
  967.             DrawRotaGraph(pos[randamumasuY][randamumasuX][0] + 140 - 4 * randamuzahyoukeisannhiki, pos[randamumasuY][randamumasuX][1] - 200 + 8 * randamuzahyoukeisannhiki, 1.0, 0 - kakudo2, kikennhanndle[1], TRUE);
  968.             //DrawGraph(pos[randamumasuYA][randamumasuXA][0] + 100 - 4 * randamuzahyoukeisannhiki, pos[randamumasuYA][randamumasuXA][1] - 200 + 8 * randamuzahyoukeisannhiki, kikennhanndle[1], true);
  969.             DrawRotaGraph(pos[randamumasuYA][randamumasuXA][0] + 140 - 4 * randamuzahyoukeisannhiki, pos[randamumasuYA][randamumasuXA][1] - 200 + 8 * randamuzahyoukeisannhiki, 1.0, 0 - kakudo2, kikennhanndle[1], TRUE);
  970.  
  971.             //DrawGraph(pos[randamumasuYB][randamumasuXB][0] + 100 - 4 * randamuzahyoukeisannhiki, pos[randamumasuYB][randamumasuXB][1] - 200 + 8 * randamuzahyoukeisannhiki, kikennhanndle[1], true);
  972.             DrawRotaGraph(pos[randamumasuYB][randamumasuXB][0] + 140 - 4 * randamuzahyoukeisannhiki, pos[randamumasuYB][randamumasuXB][1] - 200 + 8 * randamuzahyoukeisannhiki, 1.0, 0 - kakudo2, kikennhanndle[1], TRUE);
  973.             //++kaihimark;
  974.         }
  975.         if (randamuzahyoukeisannhiki > 24) {
  976.             randamuzahyoukeisann = 0;
  977.             kakudo = 0;
  978.             kakudo2 = 0;
  979.         }
  980.         //if (randamuzahyou > 40 && randamuzahyou < 60) {
  981.             //DrawGraph(preenemyX3 - 500, preenemyY3-200, kikennhanndle[1], true);
  982.         //}
  983.         if (randamuzahyou > 0 && ++randamuzahyou > 20) {
  984.             randamuzahyoulock = 1;
  985.             randamuzahyou = 0;//randamuzahyouが0より大きいとrandamuzahyoulock = 1のままで描画が消えないので、25より大きくなったら0にする。
  986.             //A = 5;
  987.         }
  988.         if (randamuzahyou > 0 && randamuzahyou < 20) {
  989.             randamuzahyoulockA = 1;//上のif(A==4)が働かないようにするために書いた。
  990.         }
  991.         if (randamuzahyoulock == 1) {
  992.             if (randamumasuX == 0 && randamumasuY == 0) {
  993.                 A = 5; randammasucountA = 1;
  994.                 DrawGraph(pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1], kikennhanndle[1], true);
  995.                 if (pos[randamumasuY][randamumasuX][0] == pos[playerY][playerX][0] && pos[randamumasuY][randamumasuX][1] == pos[playerY][playerX][1]) {
  996.                     //下に書いてある50フレーム中のrandammasucountBA > 0 && randammasucountBA < 2の間だけダメージが当たるようにした。なので書いたままのダメージが入る。
  997.                     if (randammasucountBA > 0 && randammasucountBA < 2) {
  998.                         playerHP = playerHP - 100;
  999.                     }
  1000.                 }
  1001.             }
  1002.             if (randamumasuX == 0 && randamumasuY == 1) {
  1003.                 A = 5; randammasucountA = 1;
  1004.                 DrawGraph(pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1], kikennhanndle[1], true);
  1005.                 if (pos[randamumasuY][randamumasuX][0] == pos[playerY][playerX][0] && pos[randamumasuY][randamumasuX][1] == pos[playerY][playerX][1]) {
  1006.                     if (randammasucountBA > 0 && randammasucountBA < 2) {
  1007.                         playerHP = playerHP - 100;
  1008.                     }
  1009.                 }
  1010.             }
  1011.             if (randamumasuX == 0 && randamumasuY == 2) {
  1012.                 A = 5; randammasucountA = 1;
  1013.                 DrawGraph(pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1], kikennhanndle[1], true);
  1014.                 if (pos[randamumasuY][randamumasuX][0] == pos[playerY][playerX][0] && pos[randamumasuY][randamumasuX][1] == pos[playerY][playerX][1]) {
  1015.                     if (randammasucountBA > 0 && randammasucountBA < 2) {
  1016.                         playerHP = playerHP - 100;
  1017.                     }
  1018.                 }
  1019.             }
  1020.             if (randamumasuXA == 1 && randamumasuYA == 0) {
  1021.                 A = 5; randammasucountA = 1;
  1022.                 DrawGraph(pos[randamumasuYA][randamumasuXA][0], pos[randamumasuYA][randamumasuXA][1], kikennhanndle[1], true);
  1023.                 if (pos[randamumasuYA][randamumasuXA][0] == pos[playerY][playerX][0] && pos[randamumasuYA][randamumasuXA][1] == pos[playerY][playerX][1]) {
  1024.                     if (randammasucountBA > 0 && randammasucountBA < 2) {
  1025.                         playerHP = playerHP - 100;
  1026.                     }
  1027.                 }
  1028.             }
  1029.             if (randamumasuXA == 1 && randamumasuYA == 1) {
  1030.                 A = 5; randammasucountA = 1;
  1031.                 DrawGraph(pos[randamumasuYA][randamumasuXA][0], pos[randamumasuYA][randamumasuXA][1], kikennhanndle[1], true);
  1032.                 if (pos[randamumasuYA][randamumasuXA][0] == pos[playerY][playerX][0] && pos[randamumasuYA][randamumasuXA][1] == pos[playerY][playerX][1]) {
  1033.                     if (randammasucountBA > 0 && randammasucountBA < 2) {
  1034.                         playerHP = playerHP - 100;
  1035.                     }
  1036.                 }
  1037.             }
  1038.             if (randamumasuXA == 1 && randamumasuYA == 2) {
  1039.                 A = 5; randammasucountA = 1;
  1040.                 DrawGraph(pos[randamumasuYA][randamumasuXA][0], pos[randamumasuYA][randamumasuXA][1], kikennhanndle[1], true);
  1041.                 if (pos[randamumasuYA][randamumasuXA][0] == pos[playerY][playerX][0] && pos[randamumasuYA][randamumasuXA][1] == pos[playerY][playerX][1]) {
  1042.                     if (randammasucountBA > 0 && randammasucountBA < 2) {
  1043.                         playerHP = playerHP - 100;
  1044.                     }
  1045.                 }
  1046.             }
  1047.             if (randamumasuXB == 2 && randamumasuYB == 0) {
  1048.                 A = 5; randammasucountA = 1;
  1049.                 DrawGraph(pos[randamumasuYB][randamumasuXB][0], pos[randamumasuYB][randamumasuXB][1], kikennhanndle[1], true);
  1050.                 if (pos[randamumasuYB][randamumasuXB][0] == pos[playerY][playerX][0] && pos[randamumasuYB][randamumasuXB][1] == pos[playerY][playerX][1]) {
  1051.                     if (randammasucountBA > 0 && randammasucountBA < 2) {
  1052.                         playerHP = playerHP - 100;
  1053.                     }
  1054.                 }
  1055.             }
  1056.             if (randamumasuXB == 2 && randamumasuYB == 1) {
  1057.                 A = 5; randammasucountA = 1;
  1058.                 DrawGraph(pos[randamumasuYB][randamumasuXB][0], pos[randamumasuYB][randamumasuXB][1], kikennhanndle[1], true);
  1059.                 if (pos[randamumasuYB][randamumasuXB][0] == pos[playerY][playerX][0] && pos[randamumasuYB][randamumasuXB][1] == pos[playerY][playerX][1]) {
  1060.                     if (randammasucountBA > 0 && randammasucountBA < 2) {
  1061.                         playerHP = playerHP - 100;
  1062.                     }
  1063.                 }
  1064.             }
  1065.             if (randamumasuXB == 2 && randamumasuYB == 2) {
  1066.                 A = 5; randammasucountA = 1;
  1067.                 DrawGraph(pos[randamumasuYB][randamumasuXB][0], pos[randamumasuYB][randamumasuXB][1], kikennhanndle[1], true);
  1068.                 if (pos[randamumasuYB][randamumasuXB][0] == pos[playerY][playerX][0] && pos[randamumasuYB][randamumasuXB][1] == pos[playerY][playerX][1]) {
  1069.                     if (randammasucountBA > 0 && randammasucountBA < 2) {
  1070.                         playerHP = playerHP - 100;
  1071.                     }
  1072.                 }
  1073.             }
  1074.         }
  1075.         if (randammasucountA > 0) {
  1076.             ++randammasucountBA;
  1077.             //randamuzahyouB = 0;
  1078.         }
  1079.         //マスに落ちたアイテム
  1080.         if (randammasucountBA > 0 && randammasucountBA > 15) {
  1081.             randamuzahyoulock = 0;
  1082.             randamulock = 0;
  1083.         }
  1084.         if (randammasucountBA > 15) {
  1085.             randammasucountBA = 0;
  1086.             randammasucountA = 0;
  1087.             A = 0;
  1088.             stopenemy = 0;
  1089.             test = 0;
  1090.             Y = 0;
  1091.             randamuzahyoulockA = 0;
  1092.             randamuzahyoukeisann = 0;
  1093.             kasokudo = 0;
  1094.             randamuzahyoukeisannhiki = 0;//上がったままのこいつを0にすることでAが4の時の問題が解決した。
  1095.         }
  1096.  
  1097.         //もう一つの投げの攻撃
  1098.         if (aa == 5) {
  1099.             B = 2;
  1100.             stopenemy = 1;
  1101.             randamulock = 0;//もう一つの投げが働かないように
  1102.         }
  1103.         if (B == 2) {
  1104.             aa = 0;//if (a == 2)が働き、if (A == 2)の文が働き3つの画像が同時に描画されるバグを防ぐためにaを0にした。
  1105.             randamulock = 1;//ランダム関数が影響しないためのロック
  1106.             preenemyX3 = pos[enemyY][enemyX][0] - 20;//移動前の座標を保存する、敵の座標を保存
  1107.             preenemyY3 = pos[enemyY][enemyX][1] - 90;//これで手で投げているように見える
  1108.             ++B;
  1109.         }
  1110.         if (B == 3) {
  1111.             ++kakudoC;
  1112.             if (kakudoC % 3 == 2) {
  1113.                 ++kakudoD;
  1114.             }
  1115.             ++kasokudo2;
  1116.             //preenemyX3 = preenemyX3 - kasokudo;//実験用
  1117.             preenemyX3A = preenemyX3 - kasokudo2;//座標に+1後のモノをpreenemyX3Aとした
  1118.             preenemyX3B = preenemyX3 - preenemyX3A;//後と前(固定された座標)を引いて、その差分をpreenemyX3Bとした
  1119.             test = preenemyX3B * 18;
  1120.             Y = -(test ^ 2);
  1121.             preenemyY3A = preenemyY3 + Y;
  1122.             //DrawGraph(preenemyX3A - 20 * kasokudo2, preenemyY3A + 2 * kasokudo2, kikennhanndle[1], true);
  1123.             //DrawRotaGraph(preenemyX3A - 20 * kasokudo2, preenemyY3A + 2 * kasokudo2, 1.0, 0 - kakudoD, kikennhanndle[1], TRUE);
  1124.             DrawRotaGraph(preenemyX3A - 10 * kasokudo2, preenemyY3A + 4 * kasokudo2, 1.0, 0 - kakudoD, kikennhanndle[1], TRUE);
  1125.             DrawRotaGraph(preenemyX3A - 15 * kasokudo2, preenemyY3A + 3 * kasokudo2, 1.0, 0 - kakudoD, kikennhanndle[1], TRUE);
  1126.             DrawRotaGraph(preenemyX3A - 20 * kasokudo2, preenemyY3A + 2 * kasokudo2, 1.0, 0 - kakudoD, kikennhanndle[1], TRUE);
  1127.  
  1128.  
  1129.         }
  1130.         if (kasokudo2 > 15) {
  1131.             kasokudo2 = 15;
  1132.             B = 4;
  1133.             kakudoC = 0;
  1134.             kakudoD = 0;
  1135.         }
  1136.         if (randamuzahyoulockB == 0) {
  1137.             if (B == 4) {
  1138.                 randamumasuX = GetRand(2), randamumasuY = 0;
  1139.                 randamumasuXA = GetRand(2), randamumasuYA = 1;
  1140.                 randamumasuXB = GetRand(2), randamumasuYB = 2;
  1141.                 pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1];
  1142.                 //DrawGraph(pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1], kikennhanndle[1], true);
  1143.                 ++randamuzahyouB;
  1144.                 randamuzahyoukeisannB = 1;
  1145.             }
  1146.         }
  1147.         if (randamuzahyoukeisannB == 1) {
  1148.             ++kakudo3;
  1149.             if (kakudo3 % 3 == 2) {
  1150.                 ++kakudo4;
  1151.             }
  1152.             ++randamuzahyoukeisannhikiB;
  1153.  
  1154.  
  1155.             DrawRotaGraph(pos[randamumasuY][randamumasuX][0] + 140 - 4 * randamuzahyoukeisannhikiB, pos[randamumasuY][randamumasuX][1] - 200 + 8 * randamuzahyoukeisannhikiB, 1.0, 0 - kakudo4, kikennhanndle[1], TRUE);
  1156.             DrawRotaGraph(pos[randamumasuYA][randamumasuXA][0] + 140 - 4 * randamuzahyoukeisannhikiB, pos[randamumasuYA][randamumasuXA][1] - 200 + 8 * randamuzahyoukeisannhikiB, 1.0, 0 - kakudo4, kikennhanndle[1], TRUE);
  1157.             DrawRotaGraph(pos[randamumasuYB][randamumasuXB][0] + 140 - 4 * randamuzahyoukeisannhikiB, pos[randamumasuYB][randamumasuXB][1] - 200 + 8 * randamuzahyoukeisannhikiB, 1.0, 0 - kakudo4, kikennhanndle[1], TRUE);
  1158.  
  1159.             //++kaihimark;
  1160.             //DrawGraph(pos[randamumasuY][randamumasuX][0] + 100 - 4 * randamuzahyoukeisannhikiB, pos[randamumasuY][randamumasuX][1] - 200 + 8 * randamuzahyoukeisannhikiB, kikennhanndle[1], true);
  1161.  
  1162.             //DrawGraph(pos[randamumasuYA][randamumasuXA][0] + 100 - 4 * randamuzahyoukeisannhikiB, pos[randamumasuYA][randamumasuXA][1] - 200 + 8 * randamuzahyoukeisannhikiB, kikennhanndle[1], true);
  1163.  
  1164.             //DrawGraph(pos[randamumasuYB][randamumasuXB][0] + 100 - 4 * randamuzahyoukeisannhikiB, pos[randamumasuYB][randamumasuXB][1] - 200 + 8 * randamuzahyoukeisannhikiB, kikennhanndle[1], true);
  1165.  
  1166.         }
  1167.         if (randamuzahyoukeisannhikiB > 24) {
  1168.             randamuzahyoukeisannB = 0;
  1169.             kakudo3 = 0;
  1170.             kakudo4 = 0;
  1171.         }
  1172.         //if (randamuzahyou > 40 && randamuzahyou < 60) {
  1173.             //DrawGraph(preenemyX3 - 500, preenemyY3-200, kikennhanndle[1], true);
  1174.         //}
  1175.         if (randamuzahyouB > 0 && ++randamuzahyouB > 20) {
  1176.             randamuzahyoulockBA = 1;
  1177.             //A = 5;
  1178.             randamuzahyouB = 0;
  1179.         }
  1180.         if (randamuzahyouB > 0 && randamuzahyouB < 20) {
  1181.             randamuzahyoulockB = 1;
  1182.         }
  1183.         if (randamuzahyoulockBA == 1) {
  1184.             if (randamumasuX == 0 && randamumasuY == 0) {
  1185.                 B = 5;
  1186.                 DrawGraph(pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1], kikennhanndle[1], true);
  1187.                 if (pos[randamumasuY][randamumasuX][0] == pos[playerY][playerX][0] && pos[randamumasuY][randamumasuX][1] == pos[playerY][playerX][1]) {
  1188.                     if (randammasucountB > 0 && randammasucountB < 2) {
  1189.                         playerHP = playerHP - 100;
  1190.                     }
  1191.                 }
  1192.             }
  1193.             if (randamumasuX == 1 && randamumasuY == 0) {
  1194.                 B = 5; randammasucount = 1;
  1195.                 DrawGraph(pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1], kikennhanndle[1], true);
  1196.                 if (pos[randamumasuY][randamumasuX][0] == pos[playerY][playerX][0] && pos[randamumasuY][randamumasuX][1] == pos[playerY][playerX][1]) {
  1197.                     if (randammasucountB > 0 && randammasucountB < 2) {
  1198.                         playerHP = playerHP - 100;
  1199.                     }
  1200.                 }
  1201.             }
  1202.             if (randamumasuX == 2 && randamumasuY == 0) {
  1203.                 B = 5; randammasucount = 1;
  1204.                 DrawGraph(pos[randamumasuY][randamumasuX][0], pos[randamumasuY][randamumasuX][1], kikennhanndle[1], true);
  1205.                 if (pos[randamumasuY][randamumasuX][0] == pos[playerY][playerX][0] && pos[randamumasuY][randamumasuX][1] == pos[playerY][playerX][1]) {
  1206.                     if (randammasucountB > 0 && randammasucountB < 2) {
  1207.                         playerHP = playerHP - 100;
  1208.                     }
  1209.                 }
  1210.             }
  1211.             if (randamumasuXA == 0 && randamumasuYA == 1) {
  1212.                 B = 5; randammasucount = 1;
  1213.                 DrawGraph(pos[randamumasuYA][randamumasuXA][0], pos[randamumasuYA][randamumasuXA][1], kikennhanndle[1], true);
  1214.                 if (pos[randamumasuYA][randamumasuXA][0] == pos[playerY][playerX][0] && pos[randamumasuYA][randamumasuXA][1] == pos[playerY][playerX][1]) {
  1215.                     if (randammasucountB > 0 && randammasucountB < 2) {
  1216.                         playerHP = playerHP - 100;
  1217.                     }
  1218.                 }
  1219.             }
  1220.             if (randamumasuXA == 1 && randamumasuYA == 1) {
  1221.                 B = 5; randammasucount = 1;
  1222.                 DrawGraph(pos[randamumasuYA][randamumasuXA][0], pos[randamumasuYA][randamumasuXA][1], kikennhanndle[1], true);
  1223.                 if (pos[randamumasuYA][randamumasuXA][0] == pos[playerY][playerX][0] && pos[randamumasuYA][randamumasuXA][1] == pos[playerY][playerX][1]) {
  1224.                     if (randammasucountB > 0 && randammasucountB < 2) {
  1225.                         playerHP = playerHP - 100;
  1226.                     }
  1227.                 }
  1228.             }
  1229.             if (randamumasuXA == 2 && randamumasuYA == 1) {
  1230.                 B = 5; randammasucount = 1;
  1231.                 DrawGraph(pos[randamumasuYA][randamumasuXA][0], pos[randamumasuYA][randamumasuXA][1], kikennhanndle[1], true);
  1232.                 if (pos[randamumasuYA][randamumasuXA][0] == pos[playerY][playerX][0] && pos[randamumasuYA][randamumasuXA][1] == pos[playerY][playerX][1]) {
  1233.                     if (randammasucountB > 0 && randammasucountB < 2) {
  1234.                         playerHP = playerHP - 100;
  1235.                     }
  1236.                 }
  1237.             }
  1238.             if (randamumasuXB == 0 && randamumasuYB == 2) {
  1239.                 B = 5; randammasucount = 1;
  1240.                 DrawGraph(pos[randamumasuYB][randamumasuXB][0], pos[randamumasuYB][randamumasuXB][1], kikennhanndle[1], true);
  1241.                 if (pos[randamumasuYB][randamumasuXB][0] == pos[playerY][playerX][0] && pos[randamumasuYB][randamumasuXB][1] == pos[playerY][playerX][1]) {
  1242.                     if (randammasucountB > 0 && randammasucountB < 2) {
  1243.                         playerHP = playerHP - 100;
  1244.                     }
  1245.                 }
  1246.             }
  1247.             if (randamumasuXB == 1 && randamumasuYB == 2) {
  1248.                 B = 5; randammasucount = 1;
  1249.                 DrawGraph(pos[randamumasuYB][randamumasuXB][0], pos[randamumasuYB][randamumasuXB][1], kikennhanndle[1], true);
  1250.                 if (pos[randamumasuYB][randamumasuXB][0] == pos[playerY][playerX][0] && pos[randamumasuYB][randamumasuXB][1] == pos[playerY][playerX][1]) {
  1251.                     if (randammasucountB > 0 && randammasucountB < 2) {
  1252.                         playerHP = playerHP - 100;
  1253.                     }
  1254.                 }
  1255.             }
  1256.             if (randamumasuXB == 2 && randamumasuYB == 2) {
  1257.                 B = 5; randammasucount = 1;
  1258.                 DrawGraph(pos[randamumasuYB][randamumasuXB][0], pos[randamumasuYB][randamumasuXB][1], kikennhanndle[1], true);
  1259.                 if (pos[randamumasuYB][randamumasuXB][0] == pos[playerY][playerX][0] && pos[randamumasuYB][randamumasuXB][1] == pos[playerY][playerX][1]) {
  1260.                     if (randammasucountB > 0 && randammasucountB < 2) {
  1261.                         playerHP = playerHP - 100;
  1262.                     }
  1263.                 }
  1264.             }
  1265.         }
  1266.         if (randammasucount > 0) {
  1267.             ++randammasucountB;
  1268.             //randamuzahyouB = 0;
  1269.         }
  1270.         //マスに落ちたアイテム
  1271.         if (randammasucountB > 0 && randammasucountB > 15) {
  1272.             randamuzahyoulockBA = 0;
  1273.             randamulock = 0;
  1274.         }
  1275.         if (randammasucountB > 15) {
  1276.             //☆とりあえず、変数の残り値によってバグではないがプログラム通りとは言え複雑な変な動きが出るので、ここで値をすべて0にする。
  1277.             randammasucount = 0;
  1278.             randammasucountB = 0;
  1279.             B = 0;
  1280.             stopenemy = 0;
  1281.             kasokudo2 = 0;
  1282.             randamuzahyoukeisannhikiB = 0;
  1283.             randamuzahyoukeisannB = 0;
  1284.             Y = 0;
  1285.             randamuzahyoulockB = 0;
  1286.             test = 0;
  1287.         }
  1288.  
  1289.  
  1290.         //投げ道具が降ってくるこの間だけ危険マークを描画する。
  1291.         if (randamuzahyoukeisannhiki > 0 && randamuzahyoukeisannhiki < 7) {
  1292.             ++kaihimark;
  1293.         }
  1294.         if (randamuzahyoukeisannhikiB > 0 && randamuzahyoukeisannhikiB < 7) {
  1295.             ++kaihimark;
  1296.         }
  1297.         //投げ攻撃が来る部分にマークが出る
  1298.         if (kaihimark > 0 && ++kaihimark < 7) {
  1299.             DrawRotaGraph(pos[randamumasuY][randamumasuX][0] + 30, pos[randamumasuY][randamumasuX][1] + 30, 1.0, 0, kikennhanndle[3], TRUE);
  1300.             DrawRotaGraph(pos[randamumasuYA][randamumasuXA][0] + 30, pos[randamumasuYA][randamumasuXA][1] + 30, 1.0, 0, kikennhanndle[3], TRUE);
  1301.             DrawRotaGraph(pos[randamumasuYB][randamumasuXB][0] + 30, pos[randamumasuYB][randamumasuXB][1] + 30, 1.0, 0, kikennhanndle[3], TRUE);
  1302.             DrawRotaGraph(500, 2000, 1.0, 0, randamuzahyoukeisannhikiB, TRUE);
  1303.         }
  1304.         if (kaihimark > 7) {
  1305.             kaihimark = 0;
  1306.         }
  1307.  
  1308.  
  1309.  
  1310.         if (lock == 1) {
  1311.             DrawExtendGraph(pos[enemyY][enemyX][0], pos[enemyY][enemyX][1] - 20, pos[enemyY][enemyX][0] + 45, pos[enemyY][enemyX][1] + 40, lockImge, TRUE);
  1312.         }//ロックマークの描画
  1313.         if (lock) {
  1314.             DrawFormatString(100, 200, GetColor(255, 255, 255), "LOCK");//ループ内に書くと条件式lockのによりlockの値を0にしてもずっと表示されるため、必要な時に表示するようにここに書いた
  1315.  
  1316.             DrawFormatString(50, 300, GetColor(255, 0, 0), "%d/%d", count, count2);//1回殴った時にすべて消費して、再び溜まるまでの過程を表示するための関数
  1317.         }
  1318.         if (count < 50) {
  1319.             DrawFormatString(50, 300, GetColor(0, 255, 255), "%d", count);//ここでcountの情報だけを条件(count < 500)より呼び出して、countの色を変えた
  1320.         }
  1321.         //敵のHPの描画
  1322.         DrawFormatString(pos[enemyY][enemyX][0] + 33, pos[enemyY][enemyX][1] - 49, GetColor(152, 251, 152), "HP%d", enemyHP);
  1323.  
  1324.         DrawFormatString(10, 70, GetColor(255, 0, 0), "playerHP%d", playerHP);
  1325.  
  1326.  
  1327.         if (enemyHPhyouji == 1) { DrawFormatString(pos[enemyY][enemyX][0], pos[enemyY][enemyX][1] - 100, GetColor(255, 0, 0), "enemyHP%d", enemyHP); }
  1328.         if (enemyHP <= 10) {//すべての攻撃の中の最小値を設定した
  1329.  
  1330.             enemyHPhyouji = 0; //敵のHPの表記を消す
  1331.         }
  1332.  
  1333.         DrawFormatString(50, 400, GetColor(255, 0, 0), "%d/%d", Kcount, Kcount2);
  1334.  
  1335.         DrawFormatString(150, 400, GetColor(255, 0, 0), "%d/%d", Wcount, Wcount2);
  1336.         DrawFormatString(250, 650, GetColor(255, 100, 100), "framesは%d", frames);
  1337.  
  1338.  
  1339.  
  1340.         DrawFormatString(50, 500, GetColor(255, 0, 0), "%d", addattackimage);//★addattacktimeが攻撃に続けば500になるし、それ以外では初期値より0なのでずっと下がっているわけではない
  1341.         if (addattacktime <= 100 && addattacktime > 0) {
  1342.             --addattacktime;
  1343.             DrawFormatString(50, 450, GetColor(255, 0, 0), "addattacktime%d", addattacktime);
  1344.         }//ロックオンして攻撃するまでの間のみ出てくる。
  1345. //★上限や下限はないが、変数の値をセットすることで切り替えることはできる。今回はそれを活用して変数の値を一時的に固定したり変えたりしている。
  1346.  
  1347.         DrawFormatString(50, 470, GetColor(255, 0, 0), "確認addattacktime%d", addattacktime);
  1348.         DrawFormatString(50, 500, GetColor(255, 0, 0), "stopenemytime%d", stopenemytime);
  1349.         DrawFormatString(50, 570, GetColor(255, 150, 170), "function_statusは%d", function_status);
  1350.         DrawFormatString(50, 585, GetColor(255, 0, 0), "Gtime%d", Gtime);
  1351.         ///DrawFormatString(150, 585, GetColor(255, 0, 0), "GtimeA%d", GtimeA);
  1352.  
  1353.  
  1354.  
  1355.  
  1356.         if (GcountA == 0) {
  1357.             DrawFormatString(200, 600, GetColor(255, 0, 0), "グロッグ射撃可能");
  1358.             DrawFormatString(50, 600, GetColor(255, 0, 0), "Gcount%d/Gcount%d", Gcount, Gcount2);
  1359.         }
  1360.         if (GcountA == 1) { DrawFormatString(200, 600, GetColor(255, 255, 0), "グロッグリロード中"); }
  1361.  
  1362.         if (MGcountA == 0) {
  1363.             DrawFormatString(250, 650, GetColor(255, 0, 0), "マシンガン射撃可能");
  1364.             DrawFormatString(50, 650, GetColor(255, 0, 0), "MGcount%d/MGcount%d", MGcount, MGcount2);
  1365.         }
  1366.         if (MGcountA == 1) {
  1367.             //被らないようにするとなるとGfunction_status == 0の時にMGcountAを0にしても勝手にリロードされる。
  1368.             //被らないような新しい変数を良いすればいいかもしれないが、誤作動とかを考えると何の武器を選んでいるか把握できた方がいいかもしれない。
  1369.             DrawFormatString(200, 650, GetColor(255, 255, 0), "マシンガンリロード中");
  1370.         }
  1371.  
  1372.         //何を選択しているかの表示
  1373.         if (Gfunction_status == 0 && GcountA == 0) {
  1374.             DrawFormatString(200, 600, GetColor(255, 255, 0), "グロッグ射撃可能");
  1375.             DrawFormatString(50, 600, GetColor(255, 255, 0), "Gcount%d/Gcount%d", Gcount, Gcount2);
  1376.         }
  1377.         if (Gfunction_status == 1 && MGcountA == 0) {
  1378.             DrawFormatString(250, 650, GetColor(255, 255, 0), "マシンガン射撃可能");
  1379.             DrawFormatString(50, 650, GetColor(255, 255, 0), "MGcount%d/MGcount%d", MGcount, MGcount2);
  1380.         }
  1381.  
  1382.         DrawFormatString(200, 500, GetColor(255, 0, 0), "敵が攻撃してくるまでenemyattackは%dでenemyattackBは%d", enemyattack, enemyattackB);
  1383.         DrawFormatString(50, 620, GetColor(255, 0, 0), "protectは%d、protectcountは%d", protect, protectcount);
  1384.         DrawFormatString(290, 630, GetColor(255, 0, 0), "enemycountframeは%d,enemycount%d", enemycountframe, enemycount);
  1385.         DrawFormatString(100, 150, GetColor(255, 0, 100), "enemycount%d", enemycount);
  1386.         DrawFormatString(320, 540, GetColor(255, 0, 0), "Gkeyは%d,Gfunction_statusは%d,Grockは%d,reloadは%d", Gkey, Gfunction_status, Grock, reload);
  1387.         DrawFormatString(320, 560, GetColor(255, 0, 0), "GcountAは%d,MGcountAは%d", GcountA, MGcountA);
  1388.         DrawFormatString(320, 580, GetColor(255, 0, 0), "lockは%d,lockonMoveは%d,zannzouは%d", lock, lockonMove, zannzou);
  1389.         DrawFormatString(200, 680, GetColor(255, 0, 0), "a%d,nageXは%d,randamulockは%d,preenemyX2は%d, preenemyY2は%d", a, nageX, randamulock, preenemyX2, preenemyY2);
  1390.         //DrawFormatString(200, 740, GetColor(255, 0, 0), "nageXAは%d,preenemyX2Aは%d,preenemyY2Aは%d,Xは%d", nageXA, preenemyX2A, preenemyY2A,X);
  1391.         DrawFormatString(0, 800, GetColor(255, 0, 0), "A%d,testは%d,pos[playerY][playerX][0]は%d,pos[playerY][playerX][1]は%d", A, test, pos[playerY][playerX][0], pos[playerY][playerX][1]);
  1392.  
  1393.         DrawFormatString(0, 850, GetColor(255, 0, 0), "kasokudoは%d,kasokudo2は%d,kasokudo3は%d,Yは%d", kasokudo, kasokudo2, kasokudo3, Y);
  1394.         DrawFormatString(100, 900, GetColor(255, 0, 0), "固定preenemyX3は%d,後preenemyX3Aは%d,差分preenemyX3Bは%d", preenemyX3, preenemyX3A, preenemyX3B);
  1395.         DrawFormatString(100, 950, GetColor(255, 0, 0), "高さpreenemyY3Aは%d,randamumasuXは%d,randamumasuYは%d", preenemyY3A, randamumasuX, randamumasuY);
  1396.         //  DrawFormatString(100, 1000, GetColor(255, 0, 0), "randamumasuXは%d,randamumasuYは%d", randamumasuX,randamumasuY);
  1397.             //DrawFormatString(100, 1050, GetColor(255, 0, 0), "randamumasuXAは%d,randamumasuYAは%d", randamumasuXA, randamumasuYA);
  1398.             //DrawFormatString(100, 1100, GetColor(255, 0, 0), "randamumasuXBは%d,randamumasuYBは%d,Bは%d,", randamumasuXB, randamumasuYB,B);
  1399.             //DrawFormatString(100, 1150, GetColor(255, 0, 0), "randamulockは%d,randammasucountは%d,randammasucountBは%d,aaは%d", randamulock, randammasucount,randammasucountB,aa);
  1400.             //DrawFormatString(100, 1200, GetColor(255, 0, 0), "randammasucountBAは%d,randamuzahyoulockAは%d", randammasucountBA, randamuzahyoulockA);
  1401.             //DrawFormatString(100, 1250, GetColor(255, 0, 0), "randammasucountBAは%d", randammasucountBA);
  1402.         DrawFormatString(100, 1000, GetColor(255, 0, 0), "stage[0][6][0]は%d, stage[1][6][0]は%d,Glockは%d,Gfunction_statusは%d", stage[0][6][0], stage[i][6][0], Glock, Gfunction_status);
  1403.         //DrawFormatString(100, 1100, GetColor(255, 0, 0), "stage[0][6][0]は%d, stage[0][6][1]は%d,Glockは%d,Gfunction_statusは%d", stage[4][6][0], stage[4][6][1], Glock, Gfunction_status);
  1404.  
  1405.         DrawFormatString(100, 1150, GetColor(255, 0, 0), "addattacktimeは%d,MGframeは%d", addattacktime, MGframe);
  1406.  
  1407.     }
  1408. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement