具体的に言うとジャンプ+方向キーで斜めにジャンプしていたのが物凄い勢いで真横に移動してしまうようになります。
初心者なので解りにくいところや変な書き方をしているところなど多々あると思いますが、どうかご教授お願いします。使用言語はC++です。
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
int kooraX, kooraY, kooraGraph;
int tutiGraph, yamaGraph,capGraph;
if (DxLib_Init() == -1) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
SetDrawScreen(DX_SCREEN_BACK);
kooraGraph = LoadGraph("コーラ.png");
capGraph = LoadGraph("キャップ.png");
tutiGraph = LoadGraph("土.png");
yamaGraph = LoadGraph("山.png");
kooraX = 0; kooraY = 300;
while (1)
{
ClearDrawScreen();
{
int i;
if (CheckHitKey(KEY_INPUT_S) == 1) kooraX += 3; //右へ
if (CheckHitKey(KEY_INPUT_A) == 1) kooraX -= 3; //左へ
if (CheckHitKey(KEY_INPUT_W) == 1) //ジャンプ
{
for (i = 1; i <= 15; i++)
{
if (CheckHitKey(KEY_INPUT_S) == 1) kooraX += 3;
if (CheckHitKey(KEY_INPUT_A) == 1) kooraX -= 3;
kooraY = -3;
DrawGraph(kooraX, kooraY, kooraGraph, TRUE);
WaitTimer(1);
ClearDrawScreen();
}
for (i = 1; i <= 15; i++)
{
if (CheckHitKey(KEY_INPUT_S) == 1) kooraX += 3;
if (CheckHitKey(KEY_INPUT_A) == 1) kooraX -= 3;
kooraY = -3;
DrawGraph(kooraX, kooraY, kooraGraph, TRUE);
WaitTimer(1);
ClearDrawScreen();
}
}
if (CheckHitKey(KEY_INPUT_D) == 1) //球を打つ処理
{
int capX, capY;
capX = kooraX + 30; capY = kooraY - 5;
for (i = 1; i <= 100; i++)
{
DrawGraph(capX + i + 10, capY, capGraph, TRUE);
DrawGraph(kooraX, kooraY, kooraGraph, TRUE);
if (CheckHitKey(KEY_INPUT_A) == 1) kooraX -= 3;
if (CheckHitKey(KEY_INPUT_S) == 1) kooraX += 3;
ScreenFlip();
WaitTimer(1);
ClearDrawScreen();
if ((CheckHitKey(KEY_INPUT_ESCAPE) == 1) || (CheckHitKey(KEY_INPUT_D) == 1)) break;
}
}
}
if (CheckHitKey(KEY_INPUT_ESCAPE) == 1) break; //escキーで終了
DrawGraph(kooraX, kooraY, kooraGraph, TRUE);
ScreenFlip();
}
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}