管理人さん ご連絡ありがとうございます。
「サンプルプログラム実行用フォルダ」内の
プロジェクトを実行してみました。
正常にビルドできました。
ですので、(しつこいようですが)「14歳から」に
したがって、プログラムを書き換えてみました。
最初forを入れた文にしました。
次にwhileで書き替えました。
さらに構造体に書き換えました。
ここまでくるのに、自分で作ったプロジェクトは
4つくらいだめになったと思います。
しかし、サンプルプログラムは丈夫(?)でした。
以下サンプルを書き換えたコードと
自作のエラーがたったコードを添付します。
(エラーのたったコードでも、プロジェクトを
新しくすると一度は動きます。
ちょっとかなしいです。)
// ここにサンプルプログラムをペーストしてください
// 初期状態では LoadGraphScreen のサンプルプログラムが入力されています。
#include "DxLib.h"
struct CharData
{
int x;
int y;
int girl;
};
struct CharData jikidata;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
// BMP画像の表示
jikidata.girl = LoadGraph( "test1.bmp" ) ;
jikidata.x =0;
SetDrawScreen(DX_SCREEN_BACK);
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 ){
ClsDrawScreen();
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(key & PAD_INPUT_LEFT) jikidata.x = jikidata.x - 4;
if(key & PAD_INPUT_RIGHT) jikidata.x = jikidata.x + 4;
DrawGraph(jikidata.x, 0, jikidata.girl, TRUE);
ScreenFlip();
}
WaitKey() ; // キーの入力待ち((7-3)『WaitKey』を使用)
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
こちらが自作です。
#include "DxLib.h"
//#pragma comment(lib."libjpeg.lib")
struct CharData
{
int x;
int y;
int ghandle;
};
struct CharData jikidata;
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode( TRUE ) ;
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
return (-1); // エラーが起きたら直ちに終了
jikidata.ghandle = LoadGraph( "media\\test_jiki.bmp" ) ;
jikidata.x = 0;
jikidata.y = 0;
// 描画先画面を表にする
SetDrawScreen( DX_SCREEN_BACK ) ;
while( ProcessMessage() == 0 && CheckHitKey( KEY_INPUT_ESCAPE ) == 0 )
{
ClsDrawScreen();
DrawBox(270,190,370,290,GetColor(255,0,0),TRUE);
int key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
if(key & PAD_INPUT_UP) jikidata.y = jikidata.y - 4;
if(key & PAD_INPUT_DOWN) jikidata.y = jikidata.y + 4;
if(key & PAD_INPUT_LEFT) jikidata.x = jikidata.x - 4;
if(key & PAD_INPUT_RIGHT) jikidata.x = jikidata.x + 4;
DrawGraph( jikidata.x , jikidata.y, jikidata.ghandle , TRUE) ;
// 裏画面の内容を表画面に反映します
ScreenFlip() ;
}
WaitKey();
DxLib_End() ; // DXライブラリ使用の終了処理
return (0) ; // ソフトの終了
}