//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// 「ゲーム制作」 基本ソース
//////////////////////////////////////////////////////////////////////
#include "Dxlib.h" // DxLibライブラリを使用する
#define SCREEN_SIZE_X 640 // 画面の横サイズ
#define SCREEN_SIZE_Y 480 // 画面の縦サイズ
#define MOUSE_INPUT_LEFT
#define DATA_MAX_X
#define DATA_MAX_Y
#define IMAGE_SIZE_X
#define IMAGE_SIZE_Y
#define PZ_IMAGE_SIZE_X (IMAGE_SIZE_X / pzSize.x)
#define PZ_IMAGE_SIZE_Y (IMAGE_SIZE_Y / pzSize.y)
typedef struct {
int x;
int y;
}POS;
//
//
// 変数定義
//
//
int pzData[DATA_MAX_Y][DATA_MAX_X];
int chipImage; // 描画用登録用変数
POS mousePos;
POS pzSize;
POS chipPos;
// ========== WinMain関数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
// ---------- システム処理
SetWindowText("15pazul");
// システム処理
SetGraphMode(SCREEN_SIZE_X, SCREEN_SIZE_Y, 16); // 640×480ドット65536色モードに設定
ChangeWindowMode(true); // true:window false:フルスクリーン
if (DxLib_Init() == -1) return -1; // DXライブラリ初期化処理
SetDrawScreen(DX_SCREEN_BACK); // ひとまずバックバッファに描画
// ---------- グラフィックの登録 ----------- chipImage = LoadGraph("image/popute.png"); pzSize x = 2; pzSize y = 2; // ---------- ゲームループ while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) { ClsDrawScreen(); // 画面消去 // // // メイン処理 // // GetMousePoint(&mousePos. x, &mousePos. y); if ((GetMouseInput() & MOUSE_INPUT_LEFT) != 0) { chipPos.x = mousePos.x / PZ_IMAGE_SIZE_X; chipPos.y = mousePos.y / PZ_IMAGE_SIZE_Y; if (chipPos.x >= 0 && chipPos.x < pzSize.x && chipPos.y >= 0 && chipPos.y < pzSize.y) { if (chipPos.x >= 1 && chipPos.x < pzSize.x) { if (pzData[chipPos.y][chipPos.x - 1] == 0) { pzData[chipPos.y][chipPos.x - 1] = pzData[chipPos.y][chipPos.x]; pzData[chipPos.y][chipPos.x] = 0; } } } //描画 for (int y = 0; y < DATA_MAX_Y; y++) { for (int x = 0; < DATA_MAX_X; x++) { if (pzData[y][x] != -1 && pzData[y][x] != 0) { DrawRectGraph(x*PZ_IMAGE_SIZE_X, y*PZ_IMAGE_SIZE_Y, (pzData[y][x] % pzSize.x) * PZ_IMAGE_SIZE_X (pzData[y][x] / pzSize.x) * PZ_IMAGE_SIZE_Y PZ_IMAGE_SIZE_X, PZ_IMAGE_SIZE_Y, chipImage, true, false); } } } ScreenFlip(); // 裏画面を表画面に瞬間コピー } DxLib_End(); // DXライブラリの終了処理 return 0; // このプログラムの終了
}
回答1件
あなたの回答
tips
プレビュー