質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

1回答

4432閲覧

15パズル 画像が表示されない LoadGraphによるエラー

dcopKohei_7

総合スコア7

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2016/09/27 05:05

編集2016/10/04 05:22

//////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////// 「ゲーム制作」 基本ソース
//////////////////////////////////////////////////////////////////////

#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; // このプログラムの終了

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tuyudaku

2016/09/29 07:12

何が聞きたいのかわからない、丸投げ
guest

回答1

0

ベストアンサー

C

1chipImage = LoadGraph("image/popute.png");

でエラー表示して停止しているのでしょうか?

LoadGraphに指定している画像のパスは相対パスになっているので、EXEファイルと同じフォルダーに存在しないとエラーになります。
例えば実行ファイルが「C:\Test\Test01.exe」なら「C:\Test\image\popute.png」という画像ファイルが必要になります。

質問するときですが

  • プログラムコードは```(バッククォート3つ)のブロックで囲みましょう。記入時に</>ボタンをクリックするとブロックが表示されます。
  • タイトルで質問したつもりなのかもしれませんが、本文に詳しく状況を書きましょう。

投稿2016/10/04 08:22

PineMatsu

総合スコア3579

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dcopKohei_7

2016/10/07 07:03

とても参考になります ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問