一度基本を見直した方がいいと言われたので基本的な構文を使って参考書を読みながらプログラムを作っていたのですが、最初に次のようなプログラムを作りました。この時点では普通にビルドできましたし考えていたとおりの動き(ゲームの枠と背景を描画し、その中にいるキャラクターが左右のキー入力に合わせて動くというものです)もしました。
main.cpp
#define GLOBAL_INSTANCE
#include "ヘッダー/GLOBAL_int.h"
int Key[256];
int gpUpdateKey(){
char tmpKey[256];
GetHitKeyStateAll(tmpKey);
for(int i=0;i<256;i++){
if(tmpKey[i]!=0){
Key[i]++;
}else{
Key[i]=0;
}
}
return 0;
}
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK); // ウィンドウモードに設定,DXライブラリ初期化処理,描写先を裏画面に設定
board = LoadGraph("画像/ボード/枠.png");//枠をboardにロードする
back5 = LoadGraph("画像/背景/1.png");
deta_board = LoadGraph("画像/ボード/パラメータ表示部分.png");//パラメータ表示部分をdeta_boardにロードする
LoadDivGraph("画像/キャラクタ/ドット/自機.png",12,4,3,38,41,ziki);//自機の画像を12分割してロード
img = (cnt%48)/12;
while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && gpUpdateKey()==0){
DrawGraph(20,80,back5,TRUE);//背景の描写
DrawRotaGraph(x,444,1.0,0.0,ziki[img],TRUE);//自機の描写
img = (cnt%48)/12;
cnt++;
DrawGraph(0,0,board,TRUE);//枠を描写
DrawGraph(20,15,deta_board,TRUE);//パラメータ表示部分を描写
if(Key[KEY_INPUT_LEFT]>=1 && x>=MIN_X && Key[KEY_INPUT_RIGHT]==0){
img+=8;
x-=2;
}
if(Key[KEY_INPUT_RIGHT]>=1 && x<=MAX_X && Key[KEY_INPUT_LEFT]==0){
img+=4;
x+=2;
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
#include "DxLib.h"
#ifdef GLOBAL_INSTANCE
#define GLOBAL
#else
#define GLOBAL exturn
#endif
GLOBAL int board;//枠用変数
GLOBAL int back5;//1面背景用変数
GLOBAL int deta_board;//パラメータ表示部分用変数
GLOBAL int ziki[12];//自機用変数
GLOBAL int x=320;//自機の位置 初期位置320
GLOBAL int MAX_X=619;//移動領域 右端
GLOBAL int MIN_X=20;//移動領域 左端
GLOBAL int cnt=0;//画像ループ用変数1
GLOBAL int img;//画像ループ用変数2
main.cpp
#define GLOBAL_INSTANCE
#include "ヘッダー/GLOBAL_int.h"
int Key[256];
int gpUpdateKey(){
char tmpKey[256];
GetHitKeyStateAll(tmpKey);
for(int i=0;i<256;i++){
if(tmpKey[i]!=0){
Key[i]++;
}else{
Key[i]=0;
}
}
return 0;
}
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK); // ウィンドウモードに設定,DXライブラリ初期化処理,描写先を裏画面に設定
extern void load_img();
img = (cnt%48)/12;
while(ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && gpUpdateKey()==0){
DrawGraph(20,80,back5,TRUE);//背景の描写
DrawRotaGraph(x,444,1.0,0.0,ziki[img],TRUE);//自機の描写
img = (cnt%48)/12;
cnt++;
DrawGraph(0,0,board,TRUE);//枠を描写
DrawGraph(20,15,deta_board,TRUE);//パラメータ表示部分を描写
if(Key[KEY_INPUT_LEFT]>=1 && x>=MIN_X && Key[KEY_INPUT_RIGHT]==0){
img+=8;
x-=2;
}
if(Key[KEY_INPUT_RIGHT]>=1 && x<=MAX_X && Key[KEY_INPUT_LEFT]==0){
img+=4;
x+=2;
}
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
#include "DxLib.h"
#ifdef GLOBAL_INSTANCE
#define GLOBAL
#else
#define GLOBAL exturn
#endif
GLOBAL int board;//枠用変数
GLOBAL int back5;//1面背景用変数
GLOBAL int deta_board;//パラメータ表示部分用変数
GLOBAL int ziki[12];//自機用変数
GLOBAL int x=320;//自機の位置 初期位置320
GLOBAL int MAX_X=619;//移動領域 右端
GLOBAL int MIN_X=20;//移動領域 左端
GLOBAL int cnt=0;//画像ループ用変数1
GLOBAL int img;//画像ループ用変数2
#include"../ヘッダー/GLOBAL_int.h"
void load_img(){
board = LoadGraph("画像/ボード/枠.png");//枠をboardにロードする
back5 = LoadGraph("画像/背景/1.png");
deta_board = LoadGraph("画像/ボード/パラメータ表示部分.png");//パラメータ表示部分をdeta_boardにロードする
LoadDivGraph("画像/キャラクタ/ドット/自機.png",12,4,3,38,41,ziki);//自機の画像を12分割してロード
}
1>コンパイルしています...
1>main.cpp
1>load.cpp
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(12) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(12) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(12) : error C2086: 'int exturn' : 再定義されました。
1> c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : 'exturn' の宣言を確認してください。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(13) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(13) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(13) : error C2086: 'int exturn' : 再定義されました。
1> c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : 'exturn' の宣言を確認してください。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(14) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(14) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(14) : error C2086: 'int exturn' : 再定義されました。
1> c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : 'exturn' の宣言を確認してください。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(15) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(15) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(15) : error C2086: 'int exturn' : 再定義されました。
1> c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : 'exturn' の宣言を確認してください。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(16) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(16) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(16) : error C2086: 'int exturn' : 再定義されました。
1> c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : 'exturn' の宣言を確認してください。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(17) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(17) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(17) : error C2086: 'int exturn' : 再定義されました。
1> c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : 'exturn' の宣言を確認してください。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(18) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(18) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(18) : error C2086: 'int exturn' : 再定義されました。
1> c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : 'exturn' の宣言を確認してください。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(19) : error C2144: 構文エラー : 'int' は ';' によって先行されなければなりません。
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(19) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(19) : error C2086: 'int exturn' : 再定義されました。
1> c:\users\pcuser\documents\visual studio 2008\projects\game\ヘッダー\global_int.h(11) : 'exturn' の宣言を確認してください。
ご鞭撻のほどよろしくお願いします。