敵表示が上手くいきません、以下ソースコード
main.cpp
#include "DxLib.h"
#include "SceneMgr.h"
int x, y;// 画像のいる座標
char KeyBuf[256];// キーが押されてる状態を入れる文字配列
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定
while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){//画面更新 & メッセージ処理 & 画面消去
SceneMgr_Update(); //更新
SceneMgr_Draw(); //描画
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
#include "Menu.h"
#include "SceneMgr.h"
#include "DxLib.h"
//更新
void Menu_Update(){
if(CheckHitKey(KEY_INPUT_G)!=0){//Gキーが押されていたら
SceneMgr_ChangeScene(eScene_Game);//シーンをゲーム画面に変更
}
if(CheckHitKey(KEY_INPUT_C)!=0){//Cキーが押されていたら
SceneMgr_ChangeScene(eScene_Config);//シーンを設定画面に変更
}
}
//描画
void Menu_Draw(){
DrawString(0, 0,"メニュー画面です。",GetColor(255,255,255));
DrawString(0,20,"Gキーを押すとゲーム画面に進みます。",GetColor(255,255,255));
DrawString(0,40,"Cキーを押すと 設定画面に進みます。",GetColor(255,255,255));
}
#include "Game.h"
#include "SceneMgr.h"
#include "DxLib.h"
#include "struct.h"
#define ENEMY_MAX 30
#define WINDOW_H 480
#define WINDOW_W 640
#define MOVE_UP 1
#define MOVE_DAWN 0
#define MOVE_RIGHT 1
#define MOVE_LEFT 0
struct ch_t ch;
struct configpad_t configpad;
struct enemy_t enemy[];
int img_ch[2][12];
int img_enemy[3][9];//敵画像9枚分 X3体分
int i;
void GameInit(){
ch.speed=50;
ch.x=320;
ch.y=500;
enemy[i].x = 50;
enemy[i].y = 200;
enemy[i].muki = MOVE_RIGHT;
}
void KeyCheck()
{
if(CheckHitKey(KEY_INPUT_LEFT)) ch.x-=ch.speed;
if(CheckHitKey(KEY_INPUT_RIGHT))ch.x+=ch.speed;
if(CheckHitKey(KEY_INPUT_UP))ch.y-=ch.speed;
if(CheckHitKey(KEY_INPUT_DOWN))ch.y+=ch.speed;
}
void load(){
LoadDivGraph( "img/char/0.png" , 12 , 4 , 3 , 73 , 73 , img_ch[0]) ;
LoadDivGraph("img/enemy/0.png", 9, 3, 3, 32, 32, img_enemy[0]);
}
void enemeyDraw(){
int i;
for (i = 0; i<ENEMY_MAX; i++){
if (enemy[i].flag == 1){
DrawRotaGraphF(enemy[i].x + FIELD_X, enemy[i].y + FIELD_Y, 1.0f, 0.0f, img_enemy[0][enemy[i].img], TRUE);
}
}
}
void enemy_Move(){
int i;
for (i = 0; i<ENEMY_MAX; i++)
if(enemy[i].muki==MOVE_RIGHT)enemy[i].x+=enemy[i].sp;
if(enemy[i].muki==MOVE_LEFT)enemy[i].x-=enemy[i].sp;
if(enemy[i].x>WINDOW_H-enemy[i].h){
enemy[i].x=WINDOW_H-enemy[i].w;
enemy[i].muki=MOVE_LEFT;
}
if(enemy[i].x<0){
enemy[i].x=0;
enemy[i].muki=MOVE_RIGHT;
}
}
void Ch_Draw(){
if(ch.x >= 620)ch.x = ch.x - 10;
if(ch.y>=460)ch.y=ch.y-10;
if(ch.x==-10)ch.x=+10;
if(ch.y==-10)ch.y=ch.y+10;
DrawRotaGraphF(ch.x, ch.y, 1.0f, 0.0f, img_ch[0][ch.img], TRUE);
}
//更新
void Game_Update(){
if(CheckHitKey(KEY_INPUT_ESCAPE)!=0){ //Escキーが押されていたら
SceneMgr_ChangeScene(eScene_Menu);//シーンをメニューに変更
}
}
//ゲームメイン
void Game_Draw(){
GameInit();
load();
KeyCheck();
enemeyDraw();
enemy_Move();
Ch_Draw();
}
#pragma once
typedef enum {
eScene_Menu, //メニュー画面
eScene_Game, //ゲーム画面
eScene_Config, //設定画面
} eScene ;
//更新
void SceneMgr_Update();
//描画
void SceneMgr_Draw();
// 引数 nextScene にシーンを変更する
void SceneMgr_ChangeScene(eScene nextScene);
#include "DxLib.h"
#include "Config.h"
#include "Game.h"
#include "Menu.h"
#include "SceneMgr.h"
static eScene Scene = eScene_Menu; //シーン管理変数
//更新
void SceneMgr_Update(){
switch(Scene){ //シーンによって処理を分岐
case eScene_Menu: //現在の画面がメニューなら
Menu_Update(); //メニュー画面の更新処理をする
break;//以下略
case eScene_Game:
Game_Update();
break;
case eScene_Config:
Config_Update();
break;
}
}
//描画
void SceneMgr_Draw(){
switch(Scene){ //シーンによって処理を分岐
case eScene_Menu: //現在の画面がメニュー画面なら
Menu_Draw(); //メニュー画面の描画処理をする
break;//以下略
case eScene_Game:
Game_Draw();
break;
case eScene_Config:
Config_Draw();
break;
}
}
// 引数 nextScene にシーンを変更する
void SceneMgr_ChangeScene(eScene NextScene){
Scene = NextScene;
}
#include "define.h"
//キャラクターに関する構造体
struct ch_t{
int flag; //フラグ
int speed;
int h;
int w;
int cnt; //カウンタ
int power; //パワー
int point; //ポイント
int score; //スコア
int num; //残機数
int mutekicnt; //無敵状態とカウント
int shot_mode; //ショットモード
int money; //お金
int img; //画像
int slow; //スローかどうか
float x,y; //座標
int shot_cnt; //ショットのカウンタ
int graph;
} ;
//
//パッドに関する構造体
struct pad_t{
int key[PAD_MAX];
};
//コンフィグに関する構造体
struct configpad_t{
int left;
int up;
int right;
int down;
int shot;
int bom;
int slow;
int start;
int change;
};
struct enemy_t{
//フラグ、カウンタ、移動パターン、向き、敵の種類、HP最大値、落とすアイテム、画像
int flag;
int w;
int h;
int cnt;
int pattern;
int muki;
int knd;
int hp;
int hp_max;
int item_n[6];
int img;
int back_col;
//座標、速度x成分、速度y成分、スピード、角度
double x;
double y;
double vx;
double vy;
double sp;
double ang;
int bltime;//弾幕開始時間、
int blknd;//弾の種類
int blknd2;//弾の種類
int col;//色
int state;//状態
int wtime;//待機時間
int wait;//停滞時間
};
エラー 2 error LNK2001: 外部シンボル ""struct enemy_t * enemy" (?enemy@@3PAUenemy_t@@A)" は未解決です。 F:\DxLib_VC 1月7日\サンプルプログラム実行用フォルダ\game.obj DxLib_VC2012用と出ますこれはなぜでしょうか?game.cppで構造体の宣言はしてるはずなのですが