#include "DxLib.h"

const int WIDTH = 960, HEIGHT = 640; // ウィンドウの幅と高さのピクセル数

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    // ＤＸライブラリを使用する準備
    SetWindowText("ＤＸライブラリの使い方"); // ウィンドウのタイトル
    SetGraphMode(WIDTH, HEIGHT, 32); // ウィンドウの大きさとカラービット数の指定
    ChangeWindowMode(TRUE); // ウィンドウモードで起動
    if (DxLib_Init() == -1) return -1; // ライブラリ初期化 エラーが起きたら終了
    SetBackgroundColor(0, 0, 0); // 背景色の指定
    SetDrawScreen(DX_SCREEN_BACK); // 描画面を裏画面にする

    int timer = 0; // 経過時間を数える変数

    while (true) { // メインループ
        ClearDrawScreen(); // 画面をクリアする
        timer++; // 時間のカウント
        DrawFormatString(0, 0, GetColor(255, 255, 255), "%d", timer); // 動作確認用にtimerを表示

        const int CYAN = GetColor(0, 255, 255); // 水色の定数

        // カーソルキーの入力
        if (CheckHitKey(KEY_INPUT_UP))    DrawString(200, 0, "上キー", CYAN);
        if (CheckHitKey(KEY_INPUT_DOWN))  DrawString(200, 20, "下キー", CYAN);
        if (CheckHitKey(KEY_INPUT_LEFT))  DrawString(200, 40, "左キー", CYAN);
        if (CheckHitKey(KEY_INPUT_RIGHT)) DrawString(200, 60, "右キー", CYAN);

        // マウスポインタの座標を出力、マウスボタンの入力
        int mouse_x, mouse_y; // ポインタの座標を代入する変数
        GetMousePoint(&mouse_x, &mouse_y); // ポインタの座標を変数に代入する
        DrawFormatString(400, 0, CYAN, "(%d, %d)", mouse_x, mouse_y); // 座標を表示
        if (GetMouseInput() & MOUSE_INPUT_LEFT)  DrawString(400, 20, "左ボタン", CYAN);
        if (GetMouseInput() & MOUSE_INPUT_RIGHT) DrawString(400, 40, "右ボタン", CYAN);

        ScreenFlip(); // 裏画面の内容を表画面に反映させる
        WaitTimer(33); // 一定時間待つ
        if (ProcessMessage() == -1) break; // Windowsから情報を受け取りエラーが起きたら終了
        if (CheckHitKey(KEY_INPUT_ESCAPE) == 1) break; // ESCキーが押されたら終了
    }

    DxLib_End(); // ＤＸライブラリ使用の終了処理
    return 0; // ソフトの終了
}
