こちらのサイトを参考にシュミレーションゲームを制作しようとしています
それで、敵を追加する項目でg_count;という拡張子が見当たらないとエラーが出てしまったでサイトをよく見ると
『まず、最初に説明しておかなければならないのは、変数g_countです。
これはゲームが開始してから何ループしたのかを表す変数です。
これはmain.cppでグローバル変数として定義し、define.hでextern宣言して共有できるようにしています。』
と説明されていたので
main.cpp に char g_count; と追加し
define.h に extern char g_count; と追加したところ見たことないエラーが出てしまい解決できません。
どなたか分かる方助けてほしいです。
エラーメッセージ
>------ ビルド開始: プロジェクト: gamegame, 構成: Release Win32 ------
1>back.cpp
1>control.cpp
1>enemy.cpp
1>main.cpp
1>pch.cpp
1>player.cpp
1>control.obj : error LNK2001: 外部シンボル "char g_count" (?g_count@@3DA) は未解決です
1>C:\Users\rikua\source\repos\gamegame\Release\gamegame.exe : fatal error LNK1120: 1 件の未解決の外部参照
1>プロジェクト "gamegame.vcxproj" のビルドが終了しました -- 失敗。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
main.cpp
#include "pch.h"
#include "control.h"
//キー取得用配列
char key[256];
// 弾のカウント
char g_count;
// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
if (DxLib_Init() == -1) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
CONTROL* control = new CONTROL;
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0 && GetHitKeyStateAll(key) == 0) {
control->All();
}
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}
define.h
#include <windows.h>
//プレイヤーの歩くスピード
#define PLAYER_SPEED 5
#define MARGIN 10
//メッセージボックス
#define MSG(m) {\
MessageBox(NULL,m,"メッセージ",MB_OK);}
//extern宣言してkey配列にどこからでもアクセスできるようにする
extern char key[256];
extern char g_count;
#pragma once
#define PSHOT_NUM 20
#define PSHOT_SPEED 14
struct SHOT {
bool flag;//弾が発射中かどうか
double x;//x座標
double y;//y座標
int gh;//グラフィックハンドル
int width, height;//画像の幅と高さ
};