DXライブラリのコードを参考書を見ながらうったあんですが・・・

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
エルフ
記事: 79
登録日時: 9年前
住所: 埼玉

DXライブラリのコードを参考書を見ながらうったあんですが・・・

#1

投稿記事 by エルフ » 9年前

ファイルを開いて書き込むことができません。というエラーがでました
どうしたら改善されますか?

コード:

#include <DxLib.h>

//グローバル変数
//時間計算用変数
int g_lasttime = 0;     //直前の計測時間
float g_frametime = 0;  //1ループにかかった時間
enum GameState       //ゲーム状態
{
	GAME_TITLE, GAME_MAIN,
	GAME_CLEAR, GAME_OVER
};
GameState g_gamestate = GAME_TITLE;
int g_gametitleimg; //タイトルイメージ
int g_heroimg;  //画像
float g_hx = 0, g_hy = 0; //座標
//ボタン
BOOL g_akey_prev;     //直前のAボタンの状態
//フォント
int g_middlefont;      //中サイズフォントハンドル

//関数プロトタイプ宣言
void DrawGameTitle();
void DrawGameMain();
void DrawGameClear();
void DrawGameOver();
BOOL IsAKeyTrigger(int key);
//キートリガー処理
BOOL IsAKeyTrigger(int key)
{
	if (key & PAD_INPUT_A)
	{
		if (g_akey_prev == FALSE)
		{
			g_akey_prev = TRUE;
			return TRUE;
		}
	}
	else
	{
		g_akey_prev = FALSE;
	}
	return FALSE;
}
int WINAPI WinMain(HINSTANCE h1, HINSTANCE hP, LPSTR lpC, int nC)
{
	//ウィンドウモードにする
	ChangeWindowMode(TRUE);
	//ウィンドウサイズを変更する
	SetGraphMode(800, 600, 32);
	//DXライブラリ初期化
	if (DxLib_Init() == -1) return -1;

	//画像を読み込み
	g_gametitleimg = LoadGraph("media/smp1_title.png");
	g_heroimg = LoadGraph("media/smp1_chara01.png");
	g_middlefont = CreateFontToHandle("メイリオ", 42, -1, DX_FONTTYPE_ANTIALIASING);

	SetDrawScreen(DX_SCREEN_BACK);
	g_lasttime = GetNowCount();  //現在時刻の記憶
	while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
	{
		//1ループにかかった時間を計測
		int curtime = GetNowCount();
		g_frametime = (float)(curtime - g_lasttime) / 1000.0f;
		g_lasttime = curtime;

		ClearDrawScreen();
		//画面描画関数に切り替え
		switch (g_gamestate)
		{
		case GAME_TITLE:
			DrawGameTitle();
			break;
		case GAME_MAIN:
			DrawGameMain();
			break;
		case GAME_CLEAR:
			DrawGameClear();
			break;
		case GAME_OVER:
			DrawGameOver();
			break;
		default:
			break;
		}
		ScreenFlip();
	}

	//待機
	WaitKey();
	//DXライブラリの終了処理
	DxLib_End();
	return 0;
}

//タイトル画面描画
void DrawGameTitle()
{
	DrawBox(0, 0, 800, 600, GetColor(255, 255, 255), TRUE);
	DrawGraph(0, 0, g_gametitleimg, TRUE);
	//テキスト表示
	DrawStringToHandle(100, 400,"Zキーでウタート",
		GetColor(0, 0, 0), g_middlefont);
	DrawStringToHandle(100, 460,"カーソルキーで上下左右に移動",
		GetColor(0, 0, 0), g_middlefont);
	//キーをチェックして画面を切り替え
	int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
	if (IsAKeyTrigger(key) == TRUE) g_gamestate = GAME_MAIN;
}
//ゲーム本編描画
void DrawGameMain()
{
	//自キャラ移動
	int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
	float mv = 80.0f * g_frametime; //移動量計算
	if (key & PAD_INPUT_UP)     g_hy -= mv;
	if (key & PAD_INPUT_DOWN)   g_hy += mv;
	if (key & PAD_INPUT_LEFT)   g_hx -= mv;
	if (key & PAD_INPUT_RIGHT)  g_hx += mv;
	DrawGraphF(g_hx, g_hy, g_heroimg, TRUE);

}
// ゲームクリア画面描画
void DrawGameClear()
{

}
//ゲームオーバー画面描画
void DrawGameOver()
{
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: DXライブラリのコードを参考書を見ながらうったあんですが・・・

#2

投稿記事 by softya(ソフト屋) » 9年前

ファイル書込みはない様ですが、プログラムのリンク時のエラーでしょうか?
エラー状況・情報は正確に書かないと答えようがありませんので、前後にしていたこととエラー情報と正確に引用するようにお願いします。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

much

Re: DXライブラリのコードを参考書を見ながらうったあんですが・・・

#3

投稿記事 by much » 9年前

使用する画像はありますか?

g_gametitleimg = LoadGraph("media/smp1_title.png");
g_heroimg = LoadGraph("media/smp1_chara01.png");

アバター
エルフ
記事: 79
登録日時: 9年前
住所: 埼玉

Re: DXライブラリのコードを参考書を見ながらうったあんですが・・・

#4

投稿記事 by エルフ » 9年前

前のコードのプログラムが起動していて、それを気づかず消していなかったのが原因でした
消したら動きました・・・

ずっと悩んでいた結果がこれででした
おさわがせしました

回答してくれたソフト屋さんmuchさんありがとうございました


ソフト屋さん
エラーの件ですが、以後気をつけます

アバター
エルフ
記事: 79
登録日時: 9年前
住所: 埼玉

Re: DXライブラリのコードを参考書を見ながらうったあんですが・・・

#5

投稿記事 by エルフ » 9年前

いっつも解決にチェックを入れるのを忘れてしまいます・・・


解決です
ありがとうございました

閉鎖

“C言語何でも質問掲示板” へ戻る