トップページ > 記事閲覧
迷路について2(マップ)
名前:FFGX 日時: 2020/07/18 12:30

迷路について2ではお世話になりました。 ですが迷路が難しく、マップをつけようとしました。 ですが、どう作ればよいのかわかりません。 方法を教えてくだ<>さい。 <loading.h> #pragma once #include<DxLib.h> #define LOCATION_MAX 15 int gr[LOCATION_MAX][4]; void loading() { gr[0][2] = LoadGraph("madia\\0_2.png", true); gr[1][2] = LoadGraph("madia\\1_2.png", true); gr[2][2] = LoadGraph("madia\\2_2.png", true); gr[3][2] = LoadGraph("madia\\3_2.png", true); gr[3][3] = LoadGraph("madia\\3_3.png", true); gr[4][1] = LoadGraph("madia\\4_1.png", true); gr[4][2] = LoadGraph("madia\\4_2.png", true); gr[5][2] = LoadGraph("madia\\5_2.png", true); gr[6][2] = LoadGraph("madia\\6_2.png", true); gr[6][3] = LoadGraph("madia\\6_3.png", true); gr[7][1] = LoadGraph("madia\\7_1.png", true); gr[7][2] = LoadGraph("madia\\7_2.png", true); gr[8][2] = LoadGraph("madia\\8_2.png", true); gr[9][2] = LoadGraph("madia\\9_2.png", true); gr[9][3] = LoadGraph("madia\\9_3.png", true); gr[10][1] = LoadGraph("madia\\10_1.png", true); gr[10][2] = LoadGraph("madia\\10_2.png", true); gr[11][2] = LoadGraph("madia\\11_2.png", true); gr[12][3] = LoadGraph("madia\\12_3.png", true); gr[13][1] = LoadGraph("madia\\13_1.png", true); } <define.h> #pragma once #include"loading.h" #define ONE 41 int maphierarchy = 1; enum { DIRECTION_N, DIRECTION_W, DIRECTION_S, DIRECTION_E, DIRECTION_MAX }; enum { LOCATION_F4_L, // 0:前4左 LOCATION_F4_R, // 1:前4右 LOCATION_F4, // 2:前4 LOCATION_F3_L, // 3:前3左 LOCATION_F3_R, // 4:前3右 LOCATION_F3, // 5:前3 LOCATION_F2_L, // 6:前2左 LOCATION_F2_R, // 7:前2右 LOCATION_F2, // 8:前2 LOCATION_F1_L, // 9:前1左 LOCATION_F1_R, // 10:前1右 LOCATION_F1, // 11:前1 LOCATION_L, // 12:左 LOCATION_R, // 13:右 LOCATION_C, // 14:現在地 }; int location[DIRECTION_MAX][LOCATION_MAX][2] = { { // 0 {-1,-4}, {1,-4}, {0,-4}, {-1,-3}, {1,-3}, {0,-3}, {-1,-2}, {1,-2}, {0,-2}, {-1,-1}, {1,-1}, {0,-1}, {-1,0}, {1,0}, {0,0} }, { // 1 {-4,1}, {-4,-1}, {-4,0}, {-3,1}, {-3,-1}, {-3,0}, {-2,1}, {-2,-1}, {-2,0}, {-1,1}, {-1,-1}, {-1,0}, {0,1}, {0,-1}, {0,0} }, { // 2 {-1,4}, {1,4}, {0,4}, {-1,3}, {1,3}, {0,3}, {-1,2}, {1,2}, {0,2}, {-1,1}, {1,1}, {0,1}, {-1,0}, {1,0}, {0,0} }, { // 3 {4,-1}, {4,1}, {4,0}, {3,-1}, {3,1}, {3,0}, {2,-1}, {2,1}, {2,0}, {1,-1}, {1,1}, {1,0}, {0,-1}, {0,1}, {0,0} }, }; int maps[ONE][ONE] = { {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0}, {0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0}, {0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0}, {0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0}, {0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,0}, {0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0}, {0,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0}, {0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0}, {0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0}, {0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0}, {0,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0}, {0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0}, {0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, {0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0}, {0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0}, {0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0}, {0,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0}, {0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0}, {0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0}, {0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0}, {0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0}, {0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0}, {0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0}, {0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0}, {0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0}, {0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0}, {0,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0}, {0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0}, {0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0}, {0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0}, {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0}, {0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0}, {0,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0}, {0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0}, {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0}, {0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0}, {0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0}, {0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0}, {0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} }; int Px = 1, Py = 1,Pd = 2; <main.cpp> #include "define.h" void check_and_paint() { int data[LOCATION_MAX]; for (int i = 0; i < LOCATION_MAX; i++) { data[i] = maps[Py + location[Pd][i][1]][Px + location[Pd][i][0]]; } if (data[LOCATION_F4_L] == 0 && data[LOCATION_F3_L] == 1 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[0][2], true); } if (data[LOCATION_F4_R] == 0 && data[LOCATION_F3_R] == 1 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[1][2], true); } if (data[LOCATION_F4] == 0 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[2][2], true); } if (data[LOCATION_F3_L] == 0 && data[LOCATION_F2_L] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[3][2], true); } if (data[LOCATION_F3_L] == 0 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[3][3], true); } if (data[LOCATION_F3_R] == 0 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[4][1], true); } if (data[LOCATION_F3_R] == 0 && data[LOCATION_F2_R] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[4][2], true); } if (data[LOCATION_F3] == 0 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[5][2], true); } if (data[LOCATION_F2_L] == 0 && data[LOCATION_F1_L] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[6][2], true); } if (data[LOCATION_F2_L] == 0 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[6][3], true); } if (data[LOCATION_F2_R] == 0 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[7][1], true); } if (data[LOCATION_F2_R] == 0 && data[LOCATION_F1_R] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[7][2], true); } if (data[LOCATION_F2] == 0 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[8][2], true); } if (data[LOCATION_F1_L] == 0 && data[LOCATION_L] == 1) { DrawGraph(0, 0, gr[9][2], true); } if (data[LOCATION_F1_L] == 0 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[9][3], true); } if (data[LOCATION_F1_R] == 0 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[10][1], true); } if (data[LOCATION_F1_R] == 0 && data[LOCATION_R] == 1) { DrawGraph(0, 0, gr[10][2], true); } if (data[LOCATION_F1] == 0) { DrawGraph(0, 0, gr[11][2], true); } if (data[LOCATION_L] == 0) { DrawGraph(0, 0, gr[12][3], true); } if (data[LOCATION_R] == 0) { DrawGraph(0, 0, gr[13][1], true); } } void mapPaint() { check_and_paint(); DrawBox(480, 0, 640, 480,GetColor(0, 0, 0), true); } void mainloop() { ClearDrawScreen(); mapPaint(); DrawFormatString(480, 50, GetColor(255, 255, 255), "x: %d y: %d dir: %d", Px, Py, Pd); ScreenFlip(); if (CheckHitKey(KEY_INPUT_UP)) { int vec[DIRECTION_MAX][2]{ {0,-1}, {-1,0}, {0,1}, {1,0} }; switch (Pd) { case DIRECTION_N: if (maps[Py + vec[Pd][1]][Px + vec[Pd][0]] != 0) Py--; break; case DIRECTION_W: if (maps[Py + vec[Pd][1]][Px + vec[Pd][0]] != 0) Px--; break; case DIRECTION_S: if (maps[Py + vec[Pd][1]][Px + vec[Pd][0]] != 0) Py++; break; case DIRECTION_E: if (maps[Py + vec[Pd][1]][Px + vec[Pd][0]] != 0) Px++; break; } WaitTimer(200); } if (CheckHitKey(KEY_INPUT_DOWN)) { Pd += 2; if (Pd == 4) Pd = 0; if (Pd == 5) Pd = 1; WaitTimer(200); } if (CheckHitKey(KEY_INPUT_RIGHT)) { Pd++; if (Pd == 4) Pd = 0; WaitTimer(200); } if (CheckHitKey(KEY_INPUT_LEFT)) { Pd--; if (Pd == -1) Pd = 3; WaitTimer(200); } if (maps[Py][Px] == 2) { DrawString(480, 0, "お疲れ様でした、クリアです。", GetColor(255, 255, 255)); } } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { SetOutApplicationLogValidFlag(false); SetWindowText("white maze"); ChangeWindowMode(true); SetBackgroundColor(255, 255, 255); DxLib_Init(); SetDrawScreen(DX_SCREEN_BACK); loading();// 読み込み while (1) { mainloop(); if (ProcessMessage() != 0) break; if (CheckHitKey(KEY_INPUT_ESCAPE)) break; } DxLib_End(); return 0; }
メンテ

Page: 1 |

Re: 迷路について2(マップ) ( No.1 )
名前:kanamaru 日時:2020/07/18 15:19

角に表示されるやつですよね。 試しに作ってみたんですけど、迷路が大きいので邪魔なサイズになってしまいます。 (縦横がだいたい画面横サイズの半分ぐらいになります。) 小さく描画もできるんですが、見づらいだけですし。 迷路の一部のマップのみ表示というのもなくはないですが、それで迷路が簡単になるかどうか。 そこでちょっと聞きたいんですけど、特定のボタンを押したら表示非表示を切り替えるとかどうですか。 そうすればサイズが大きくてもいいですし。画面中央とかに表示とかでもいいですし。 あるいは前スレッドを読んだ感じダンジョンなんですよね。 だったら迷路を小さい迷路にして(サイズを小さくするのではなく41×41を10×10とかにする)複数作り、 階段やワープ装置でつなぐとか。ここまでくるとプログラムが難しくなりますが。
メンテ
Re: 迷路について2(マップ) ( No.2 )
名前:FFGX 日時:2020/07/18 16:02

なるほど。 僕が望んでいるものを書き忘れていました。 迷路の一部マップ表示のことでした。 それはどのようなアルゴリズムでつくれますか。
メンテ
Re: 迷路について2(マップ) ( No.3 )
名前:kanamaru 日時:2020/07/18 17:38

簡単に作ってみました。 デザインは簡単なものになっていますし、 表示場所は右下になっています。 void DrawMap(int x,int y,int kc,int mc,int pc) { int b = 5; int mx = x-1, my = y-1; if (mx >= ONE/2) mx -= mx - ONE / 2-1; if (my >= ONE/2) my -= my - ONE / 2-1; for (int i = 0; i < ONE/2; i++) { for (int j = 0; j < ONE/2; j++) { if (maps[j+my][i+mx] == 0) { DrawBox(540+i*b, 380+j*b,540+i*b + b,380+j*b + b,kc, 1); } else { DrawBox(540+i*b,380+j*b,540+i*b + b,380+j*b + b,mc, 1); } } } DrawBox(540+(x-mx)*b, 380+(y-my)*b, 540+(x-mx)*b + b, 380+(y-my)*b + b, pc, 1); } 引数は、 x,y 今の場所 kc 壁の色 mc 道の色 pc 今いる場所の色 色はGetColorで指定してください。 プログラムを読んだ限り表示場所は右下でいいとは思いますが、 表示場所を変えたければDrawBoxの540だったり380を減らしてみてください。 上記関数をcheck_and_paintの一番最後で呼び出せばいいと思います。
メンテ
Re: 迷路について2(マップ) ( No.4 )
名前:FFGX 日時:2020/07/18 20:17

ありがとうございます。ですが、 「迷路のマップを空の状態から埋めていきたい」 「向きを明確にしたい」 と言ったことが発生しました。 どうにかなりませんか?
メンテ
Re: 迷路について2(マップ) ( No.5 )
名前:kanamaru 日時:2020/07/18 22:56

ということは既存のプログラムにマップ表示は成功したということでしょうか。 画像が無くて実際に合体させてみてないのでうまくいっているのか不安です。 良ければ実行ファイルにしてダウンロードできるようにしてくれませんか? 実際に動いているところを確認してみたいです。 (その時には必ず画像も一緒にお願いします。) 向きを明確にしてみたいとのことですが、 試しに自分の場所を三角形で表示したら、三角形の向きが小さくて判別がむずかしいようです。 ということで提示されているプログラムを参考におそらく限界までサイズを大きくして見ました。 これで一応三角形は判別ができると思います。 もちろん表示する範囲を狭くしてより大きく表示することもできますが、どうしますか? 次に、迷路のマップを空の状態から埋めていきたいとのことですが、 多分一度通った道だけをマップに表示していって、地図を作りながら迷路(ダンジョン?)を進んでいるようにしたいということでしょうか。 下のプログラムはそれを前提にしています。 int maps2[ONE][ONE] = { 0 }; void InitMap() { for (int i = 0; i < ONE; i++) { for (int j = 0; j < ONE; j++) { if ((i == 0) || (j == 0)) maps2[i][j] = 1; if ((i == 40) || (j == 40)) maps2[i][j] = 1; } } } void DrawMap(int x,int y,int kc,int mc,int pc,int pd) { int b = 8; int mx = x-1, my = y-1; if (mx >= ONE/2) mx -= mx - ONE / 2-1; if (my >= ONE/2) my -= my - ONE / 2-1; int vec[4][2]{ {0,-1}, {-1,0}, {0,1}, {1,0} }; for (int i = 0;;i++) { for (int j = 0; j < 4; j++) { maps2[y + i*vec[pd][1]+vec[j][1]][x + i*vec[pd][0]+vec[j][0]] = 1; maps2[y + i*vec[pd][1]+vec[j][1] + vec[(j + 1) % 4][1]][x + i*vec[pd][0]+vec[j][0] + vec[(j + 1) % 4][0]] = 1; } if (maps[y + i * vec[pd][1]][x + i * vec[pd][0]] == 0) break; } for (int i = 0; i < ONE/2; i++) { for (int j = 0; j < ONE/2; j++) { if ((maps[j+my][i+mx] == 0)&& (maps2[j + my][i + mx] == 1)) { DrawBox(480+i*b, 320+j*b,480+i*b + b,320+j*b + b,kc, 1); } else { DrawBox(480+i*b,320+j*b,480+i*b + b,320+j*b + b,mc, 1); } } } //DrawBox(480+(x-mx)*b, 320+(y-my)*b, 480+(x-mx)*b + b, 320+(y-my)*b + b, pc, 1); if (pd == 0) DrawTriangle(480 + (x - mx)*b+4, 320 + (y - my)*b, 480 + (x - mx)*b, 320 + (y - my)*b+8, 480 + (x - mx)*b+8, 320 + (y - my)*b+8,pc,1); if (pd == 1) DrawTriangle(480 + (x - mx)*b, 320 + (y - my)*b+4, 480 + (x - mx)*b+8, 320 + (y - my)*b, 480 + (x - mx)*b + 8, 320 + (y - my)*b + 8, pc, 1); if (pd == 2) DrawTriangle(480 + (x - mx)*b + 4, 320 + (y - my)*b+8, 480 + (x - mx)*b, 320 + (y - my)*b, 480 + (x - mx)*b + 8, 320 + (y - my)*b, pc, 1); if (pd == 3) DrawTriangle(480 + (x - mx)*b+8, 320 + (y - my)*b+4, 480 + (x - mx)*b, 320 + (y - my)*b, 480 + (x - mx)*b, 320 + (y - my)*b+8, pc, 1); } maps2の初期化部分はmapsの初期化のすぐ下に書いてください。 InitMapはプログラムの最初で必ず実行してください。 といっても最初は一番外側もわからない状態にしたいのであれば InitMapは呼ばなくてもいいです。ただそれだとマップが身に食うなるとは思いますが。
メンテ
Re: 迷路について2(マップ) ( No.6 )
名前:FFGX 日時:2020/07/19 08:49

ありがとうございます。 できました。 ですがマップではなく、 迷路の描画がうまくいってません。 壁がある所なのにないのですがどうしたらよいのでしょうか。
メンテ
Re: 迷路について2(マップ) ( No.7 )
名前:kanamaru 日時:2020/07/19 10:52

ちょっと原因がわかんないです。 画像が無いので実行もできないですし。 一つだけ言えるのは前のスレッドを見た感じ、迷路の描画はうまくいってるはずでは? なのでマップの縦横が間違っているとかでしょうか。 なので試しにマップの縦横を逆に頭の中で変換して迷路を進んでみてくれませんか? それで進めるのでしたら、縦横を入れ替えましょう。
メンテ
Re: 迷路について2(マップ) ( No.8 )
名前:FFGX 日時:2020/07/19 15:17

僕が思うには if (data[LOCATION_F4_L] == 0 && data[LOCATION_F3_L] == 1 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[0][2], true); } if (data[LOCATION_F4_R] == 0 && data[LOCATION_F3_R] == 1 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[1][2], true); } if (data[LOCATION_F4] == 0 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[2][2], true); } if (data[LOCATION_F3_L] == 0 && data[LOCATION_F2_L] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[3][2], true); } if (data[LOCATION_F3_L] == 0 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[3][3], true); } if (data[LOCATION_F3_R] == 0 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[4][1], true); } if (data[LOCATION_F3_R] == 0 && data[LOCATION_F2_R] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[4][2], true); } if (data[LOCATION_F3] == 0 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[5][2], true); } if (data[LOCATION_F2_L] == 0 && data[LOCATION_F1_L] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[6][2], true); } if (data[LOCATION_F2_L] == 0 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[6][3], true); } if (data[LOCATION_F2_R] == 0 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[7][1], true); } if (data[LOCATION_F2_R] == 0 && data[LOCATION_F1_R] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[7][2], true); } if (data[LOCATION_F2] == 0 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[8][2], true); } if (data[LOCATION_F1_L] == 0 && data[LOCATION_L] == 1) { DrawGraph(0, 0, gr[9][2], true); } if (data[LOCATION_F1_L] == 0 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[9][3], true); } if (data[LOCATION_F1_R] == 0 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[10][1], true); } if (data[LOCATION_F1_R] == 0 && data[LOCATION_R] == 1) { DrawGraph(0, 0, gr[10][2], true); } if (data[LOCATION_F1] == 0) { DrawGraph(0, 0, gr[11][2], true); } if (data[LOCATION_L] == 0) { DrawGraph(0, 0, gr[12][3], true); } if (data[LOCATION_R] == 0) { DrawGraph(0, 0, gr[13][1], true); } 中のどれかが変えなければならないわけです。 と考えております。
メンテ
Re: 迷路について2(マップ) ( No.9 )
名前:管理人 日時:2020/07/20 01:10

> 壁がある所なのにないのですがどうしたらよいのでしょうか。 『壁がある所なのにない』が確認できた時の Px, Py, Pd の値を教えていただけないでしょうか?
メンテ
Re: 迷路について2(マップ) ( No.10 )
名前:FFGX 日時:2020/07/20 19:24

okです x: 27 y: 1 dir(Pd): 3 x: 27 y: 1 dir(Pd): 0 x: 26 y: 1 dir(Pd): 0 x: 29 y: 1 dir(Pd): 3 x: 29 y: 1 dir(Pd): 2 とかがあります
メンテ
Re: 迷路について2(マップ) ( No.11 )
名前:管理人 日時:2020/07/21 23:16

ご返答ありがとうございます > x: 27 y: 1 dir(Pd): 3 手元で試してみましたが、特に『壁がある所なのにない』は確認できませんでした x: 27 y: 1 dir(Pd): 3 で見える範囲は 0,0,0,0 P,1,1,0 0,0,1,0 こちらの部分で、上記の P の位置がプレイヤーの位置で、Pd は 3 (東) つまり右方向を見ていて、 画面に表示されているのが https://dxlib.xsrv.jp/temp/x27_y1_Pd3.png ↑こちらなので、正常に描画されています > x: 27 y: 1 dir(Pd): 0 x: 27 y: 1 dir(Pd): 0 で見える範囲は 0,0,0 1,P,1 こちらの部分で、上記の P の位置がプレイヤーの位置で、Pd は 0 (北) つまり上方向を見ていて、 画面に表示されているのが https://dxlib.xsrv.jp/temp/x27_y1_Pd0.png ↑こちらなので、正常に描画されています > x: 26 y: 1 dir(Pd): 0 x: 26 y: 1 dir(Pd): 0 で見える範囲は 0,0,0 1,P,1 こちらの部分で、上記の P の位置がプレイヤーの位置で、Pd は 0 (北) つまり上方向を見ていて、 画面に表示されているのが https://dxlib.xsrv.jp/temp/x26_y1_Pd0.png ↑こちらなので、正常に描画されています 全部は確認していませんが、3つで正常に描画されています FFGXさんの環境では私がアップした画像とは違う見た目の画面になっているのでしょうか?
メンテ
Re: 迷路について2(マップ) ( No.12 )
名前:FFGX (解決) 日時:2020/07/22 07:09

ならば僕のプログラムに異常はないという事ですか。 ちょっと考えてみます。
メンテ
Re: 迷路について2(マップ) ( No.13 )
名前:FFGX 日時:2020/07/23 14:57

やはり表示がおかしかったので管理人さん、 main.cppのソースコードをください。 申し訳ございません。
メンテ
Re: 迷路について2(マップ) ( No.14 )
名前:管理人 日時:2020/07/24 02:31

私の手元のプログラムは『迷路について2』の頃にFFGXさんがアップしたプログラムをファイルを 分けずに一つのプログラムになっていますが、基本的にFFGXさんのプログラムの check_and_paint の中身を変えただけとなっています #include<DxLib.h> enum { LOCATION_F4_L, // 0:前4左 LOCATION_F4_R, // 1:前4右 LOCATION_F4, // 2:前4 LOCATION_F3_L, // 3:前3左 LOCATION_F3_R, // 4:前3右 LOCATION_F3, // 5:前3 LOCATION_F2_L, // 6:前2左 LOCATION_F2_R, // 7:前2右 LOCATION_F2, // 8:前2 LOCATION_F1_L, // 9:前1左 LOCATION_F1_R, // 10:前1右 LOCATION_F1, // 11:前1 LOCATION_L, // 12:左 LOCATION_R, // 13:右 LOCATION_C, // 14:現在地 LOCATION_MAX // 15 }; int gr[LOCATION_MAX][4]; int aa[LOCATION_MAX][4]; void loading() { gr[0][2] = LoadGraph("madia\\0_2.png", true); gr[1][2] = LoadGraph("madia\\1_2.png", true); gr[2][2] = LoadGraph("madia\\2_2.png", true); gr[3][2] = LoadGraph("madia\\3_2.png", true); gr[3][3] = LoadGraph("madia\\3_3.png", true); gr[4][1] = LoadGraph("madia\\4_1.png", true); gr[4][2] = LoadGraph("madia\\4_2.png", true); gr[5][2] = LoadGraph("madia\\5_2.png", true); gr[6][2] = LoadGraph("madia\\6_2.png", true); gr[6][3] = LoadGraph("madia\\6_3.png", true); gr[7][1] = LoadGraph("madia\\7_1.png", true); gr[7][2] = LoadGraph("madia\\7_2.png", true); gr[8][2] = LoadGraph("madia\\8_2.png", true); gr[9][2] = LoadGraph("madia\\9_2.png", true); gr[9][3] = LoadGraph("madia\\9_3.png", true); gr[10][1] = LoadGraph("madia\\10_1.png", true); gr[10][2] = LoadGraph("madia\\10_2.png", true); gr[11][2] = LoadGraph("madia\\11_2.png", true); gr[12][3] = LoadGraph("madia\\12_3.png", true); gr[13][1] = LoadGraph("madia\\13_1.png", true); aa[0][0] = NULL; aa[0][1] = NULL; aa[0][2] = gr[0][2]; aa[0][3] = NULL; aa[1][0] = NULL; aa[1][1] = NULL; aa[1][2] = gr[1][2]; aa[1][3] = NULL; aa[2][0] = NULL; aa[2][1] = NULL; aa[2][2] = gr[2][2]; aa[2][3] = NULL; aa[3][0] = gr[0][2]; aa[3][1] = NULL; aa[3][2] = gr[3][2]; aa[3][3] = gr[3][3]; aa[4][0] = gr[1][2]; aa[4][1] = gr[4][1]; aa[4][2] = gr[4][2]; aa[4][3] = NULL; aa[5][0] = gr[2][2]; aa[5][1] = gr[3][3]; aa[5][2] = gr[5][2]; aa[5][3] = gr[4][1]; aa[6][0] = gr[3][2]; aa[6][1] = NULL; aa[6][2] = gr[6][2]; aa[6][3] = gr[6][3]; aa[7][0] = gr[4][2]; aa[7][1] = gr[7][1]; aa[7][2] = gr[7][2]; aa[7][3] = NULL; aa[8][0] = gr[5][2]; aa[8][1] = gr[6][3]; aa[8][2] = gr[8][2]; aa[8][3] = gr[7][1]; aa[9][0] = gr[6][2]; aa[9][1] = NULL; aa[9][2] = gr[9][2]; aa[9][3] = gr[9][3]; aa[10][0] = gr[7][2]; aa[10][1] = gr[10][1]; aa[10][2] = gr[10][2]; aa[10][3] = NULL; aa[11][0] = gr[8][2]; aa[11][1] = gr[9][3]; aa[11][2] = gr[11][2]; aa[11][3] = gr[10][1]; aa[12][0] = gr[9][2]; aa[12][1] = NULL; aa[12][2] = NULL; aa[12][3] = gr[12][3]; aa[13][0] = gr[10][2]; aa[13][1] = gr[13][1]; aa[13][2] = NULL; aa[13][3] = NULL; aa[14][0] = gr[11][2]; aa[14][1] = gr[12][3]; aa[14][3] = gr[13][1]; } #define ONE 41 int maphierarchy = 1; enum { DIRECTION_N, DIRECTION_W, DIRECTION_S, DIRECTION_E, DIRECTION_MAX }; enum { WALL_NONE, WALL_WALL, WALL_MAX }; int location[DIRECTION_MAX][LOCATION_MAX][2] = { { // 0 {-1,-4}, {1,-4}, {0,-4}, {-1,-3}, {1,-3}, {0,-3}, {-1,-2}, {1,-2}, {0,-2}, {-1,-1}, {1,-1}, {0,-1}, {-1,0}, {1,0}, {0,0} }, { // 1 {-4,1}, {-4,-1}, {-4,0}, {-3,1}, {-3,-1}, {-3,0}, {-2,1}, {-2,-1}, {-2,0}, {-1,1}, {-1,-1}, {-1,0}, {0,1}, {0,-1}, {0,0} }, { // 2 {1,4}, {-1,4}, {0,4}, {1,3}, {-1,3}, {0,3}, {1,2}, {-1,2}, {0,2}, {1,1}, {-1,1}, {0,1}, {1,0}, {-1,0}, {0,0} }, { // 3 {4,-1}, {4,1}, {4,0}, {3,-1}, {3,1}, {3,0}, {2,-1}, {2,1}, {2,0}, {1,-1}, {1,1}, {1,0}, {0,-1}, {0,1}, {0,0} }, }; int maps[ONE][ONE] = { {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,0}, {0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0}, {0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0}, {0,0,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0}, {0,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0,1,0}, {0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,0}, {0,1,0,1,1,1,0,1,1,1,0,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0}, {0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0}, {0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,0}, {0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0}, {0,1,0,1,0,1,1,1,0,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0}, {0,1,0,1,0,0,0,1,0,0,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0}, {0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, {0,1,0,1,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0}, {0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0}, {0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0}, {0,1,1,1,1,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,0}, {0,1,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,1,0}, {0,1,0,1,0,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0}, {0,1,0,0,0,1,0,0,0,1,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0}, {0,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,0}, {0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0}, {0,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0}, {0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0}, {0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0}, {0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0}, {0,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0}, {0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0}, {0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0}, {0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0}, {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,0}, {0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0}, {0,1,1,1,0,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,0}, {0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0}, {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,0,1,0}, {0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0}, {0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,0}, {0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0}, {0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} }; int Px = 26, Py = 1,Pd = 0; int fov[LOCATION_MAX][DIRECTION_MAX] = { {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1}, {-1,-1,-1,-1} }; //壁のデータ保存用(3次元) int fov2[LOCATION_MAX][DIRECTION_MAX]; //グラフィックデータ保存用 void check_and_paint() { int data[LOCATION_MAX]; for (int i = 0; i < LOCATION_MAX; i++) { data[i] = maps[Py + location[Pd][i][1]][Px + location[Pd][i][0]]; } if (data[LOCATION_F4_L] == 0 && data[LOCATION_F3_L] == 1 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[0][2], true); } if (data[LOCATION_F4_R] == 0 && data[LOCATION_F3_R] == 1 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[1][2], true); } if (data[LOCATION_F4] == 0 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[2][2], true); } if (data[LOCATION_F3_L] == 0 && data[LOCATION_F2_L] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[3][2], true); } if (data[LOCATION_F3_L] == 0 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[3][3], true); } if (data[LOCATION_F3_R] == 0 && data[LOCATION_F3] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[4][1], true); } if (data[LOCATION_F3_R] == 0 && data[LOCATION_F2_R] == 1 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[4][2], true); } if (data[LOCATION_F3] == 0 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[5][2], true); } if (data[LOCATION_F2_L] == 0 && data[LOCATION_F1_L] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[6][2], true); } if (data[LOCATION_F2_L] == 0 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[6][3], true); } if (data[LOCATION_F2_R] == 0 && data[LOCATION_F2] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[7][1], true); } if (data[LOCATION_F2_L] == 0 && data[LOCATION_F1] == 1 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[7][2], true); } if (data[LOCATION_F2] == 0 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[8][2], true); } if (data[LOCATION_F1_L] == 0 && data[LOCATION_L] == 1) { DrawGraph(0, 0, gr[9][2], true); } if (data[LOCATION_F1_L] == 0 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[9][3], true); } if (data[LOCATION_F1_R] == 0 && data[LOCATION_F1] == 1) { DrawGraph(0, 0, gr[10][1], true); } if (data[LOCATION_F1_R] == 0 && data[LOCATION_R] == 1) { DrawGraph(0, 0, gr[10][2], true); } if (data[LOCATION_F1] == 0) { DrawGraph(0, 0, gr[11][2], true); } if (data[LOCATION_L] == 0) { DrawGraph(0, 0, gr[12][3], true); } if (data[LOCATION_R] == 0) { DrawGraph(0, 0, gr[13][1], true); } } void mapPaint() { check_and_paint(); DrawBox(480, 0, 640, 480,GetColor(0, 0, 0), true); } void mainloop() { ClearDrawScreen(); mapPaint(); ScreenFlip(); if (CheckHitKey(KEY_INPUT_UP)) { if (Pd==0) { } WaitTimer(200); } if (CheckHitKey(KEY_INPUT_DOWN)) { Pd += 2; if (Pd == 4) Pd = 0; if (Pd == 5) Pd = 1; WaitTimer(200); } if (CheckHitKey(KEY_INPUT_RIGHT)) { Pd--; if (Pd == -1) Pd = 3; WaitTimer(200); } if (CheckHitKey(KEY_INPUT_LEFT)) { Pd++; if (Pd == 4) Pd = 0; WaitTimer(200); } } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { SetOutApplicationLogValidFlag(false); SetWindowText("maze"); ChangeWindowMode(true); SetBackgroundColor(255, 255, 255); DxLib_Init(); SetDrawScreen(DX_SCREEN_BACK); loading();// 読み込み while (1) { mainloop(); if (ProcessMessage() != 0) break; if (CheckHitKey(KEY_INPUT_ESCAPE)) break; } DxLib_End(); return 0; }
メンテ
Re: 迷路について2(マップ) ( No.15 )
名前:FFGX(解決) 日時:2020/08/07 14:53

ありがとうございます。 一応解決しました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存