日報

趣旨変えました

今日はその日のうちに出来た

-

#define _CRT_SECURE_NO_WARNINGS
#include "DxLib.h"

// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
if (DxLib_Init() == -1) return -1;

int mouseX, mouseY,mouselog,color_white,color_red;
int buf[10][10];
SetMouseDispFlag(TRUE);
color_white = GetColor(255, 255, 255);
color_red = GetColor(255,0,0);
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
buf[i][j] = -1;
}
}
mouselog = 0;

SetDrawScreen(DX_SCREEN_BACK);
while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) {
ClearDrawScreen();
for(int i=1;i<=11;i++ )
DrawLine(i*32, 32, i*32, 352, color_white);
for (int i = 1; i <= 11; i++)
DrawLine(32,i*32, 352, i*32, color_white);
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
if (buf[i][j] == 1) {
DrawBox(j*32+32, i*32+32, j*32+32+32, i*32+32+32, color_white, TRUE);
}
}
}
GetMousePoint(&mouseX, &mouseY);
DrawFormatString(0, 0, color_white, "%d %d %d", mouseX,mouseY,mouselog);
DrawBox(480, 208, 528, 224, color_red, TRUE);
DrawBox(480, 240, 528, 256, color_red, TRUE);
DrawString(480, 208, "SAVE", color_white);
DrawString(480, 240, "LOAD", color_white);
if ((GetMouseInput() & MOUSE_INPUT_LEFT) != 0)
{

if (mouseX > 32 && mouseX < 351 && mouseY >32 && mouseY < 351 && mouselog == 0) {
mouseX = mouseX / 32;
mouseY = mouseY / 32;
buf[mouseY - 1][mouseX - 1] = buf[mouseY - 1][mouseX - 1] * -1;

}
if (mouseX > 480 && mouseX < 528 && mouseY >208 && mouseY < 224 && mouselog == 0) {
FILE *file;
file = fopen("test.dat", "wb");
fwrite(buf, sizeof(buf), 1, file);
fclose(file);

}
if (mouseX > 480 && mouseX < 528 && mouseY >240 && mouseY < 256 && mouselog == 0) {
FILE *file;
if (NULL == (file = fopen("test.dat", "rb"))) {
printfDx("fopenできません");
exit(1);
}
fread(buf, sizeof(buf), 1, file);
fclose(file);

}
mouselog = 1;
}
else {
mouselog = 0;
}
ScreenFlip();
}

DxLib_End(); // DXライブラリ使用の終了処理

return 0; // ソフトの終了
}

-

f:id:ezakikarin:20180201223710p:plain

ファイル名固定ながら、セーブもロードもばっちりです。

ファイル読み出し失敗の処理がおざなりだけど、まあこれは次回までの課題として。あと、本当は今のご時世ダイアログ出してファイル指定くらいできなければしょうがないのだけど、これも今回は簡略化しました。今後出来るようにしなければ。

というわけで、明日のミッションは、今日作ったものに加えて

マップチップデータを読み込み、それを貼り付けていけるようにする。

マップの広さは、まだ10×10でいきます。上手くいけば、次はスクロールですね。