因みに環境はwindows7のVisualC++ 2010Expressです。
1>Menu.obj : error LNK2005: "enum <unnamed-type-eScene> eScene" (?eScene@@3W4<unnamed-type-eScene>@@A) は既に game.obj で定義されています。
1>Menu.obj : error LNK2005: "struct Menu_E * Element_Menu" (?Element_Menu@@3PAUMenu_E@@A) は既に game.obj で定義されています。
1>Scene.obj : error LNK2005: "enum <unnamed-type-eScene> eScene" (?eScene@@3W4<unnamed-type-eScene>@@A) は既に game.obj で定義されています。
1>Scene.obj : error LNK2005: "struct Menu_E * Element_Menu" (?Element_Menu@@3PAUMenu_E@@A) は既に game.obj で定義されています。
//struct.h
#ifndef STRUCT_H
#define STRUCT_H
typedef struct{
int x_M;
int y_M;
char element[20];
}Menu_E;
Menu_E Element_Menu[3]={
{80, 100,"Start"},
{100,150,"Data"},
{100,200,"Exit"}
};
enum{
eScene_Menu,
eScene_Game,
eScene_Data,
eScene_End,
}eScene;
#endif
//Menu.h
extern int i;
extern int SelectNum;
extern int Scene;
extern void Select_D();
extern void UpdataScene();
extern void Select_kesan();
//Menu.cpp
#include "DxLib.h"
#include "struct.h"
#include "Key.h"
int SelectNum;
int i;
void Select_D(){
for(;i<3;i++){
DrawFormatString(Element_Menu[i].x_M,Element_Menu[i].y_M,GetColor(255,255,255),Element_Menu[i].element);
}
}
int Scene = eScene_Menu;
void UpdataScene(){
if(Element_Menu[0].x_M==80 && Key[ KEY_INPUT_RETURN ]>=1){
Scene=eScene_Game;
}
if(Element_Menu[1].x_M==80 && Key[ KEY_INPUT_RETURN ]>=1){
Scene=eScene_Data;
}
if(Element_Menu[2].x_M==80 && Key[ KEY_INPUT_RETURN ]>=1){
Scene=eScene_End;
}
}
void Select_kesan(){
if(Key[ KEY_INPUT_DOWN ]==1){
SelectNum = (SelectNum+1)%3;
}
if(Key[ KEY_INPUT_UP ]==1){
SelectNum = (SelectNum+2)%3;
}
if(Key[ KEY_INPUT_DOWN ]==1 || Key[ KEY_INPUT_UP ]==1){
for(;i<3;i++){
if(i==SelectNum){
Element_Menu[i].x_M=80;
}else{
Element_Menu[i].x_M=100;
}
}
}
}
//Scene.h
#include "Menu.h"
#include "Data.h"
#include "func.h"
extern void Menu();
extern void OutWhile();
extern void GameInWhile();
extern void Data();
extern void End();
//scene.cpp
#include "DxLib.h"
#include "struct.h"
#include "Menu.h"
#include "struct.h"
#include "Data.h"
#include "func.h"
void Menu(){
Select_kesan();
Select_D();
}
void OutWhile(){
LoadG();
DrawGraph(0,0,Haikei,TRUE);
}
void GameInWhile(){
The_Func();
FileInGame();
}
void Data(){
FileInData();
}
void End(){
exit(0);
}
//game.cpp
#include "game.h"
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)
{
SetMainWindowText("TestApp");
ChangeWindowMode(TRUE),DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK);
if(DxLib_Init() == -1) return -1;
OutWhile();
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 && UpdataKey()==0 )
{
if( Key[KEY_INPUT_ESCAPE]==1 || ProcessMessage()!=0 ){
break;
}
switch(Scene){
case eScene_Menu:
Menu();
break;
case eScene_Game:
GameInWhile();
break;
case eScene_Data:
Data();
break;
case eScene_End:
End();
break;
default:
return -1;
}
UpdataScene();
}
DxLib_End();
return 0;
}