ゲームを作るのは今回初めてです。
過去のトピックも探して設定の間違いなど確認してみたのですが解決しないので投稿させていただきます。
まず背景を出そうと思って挑戦していたのですが以下のエラーが出てしまいます。
1>main.obj : error LNK2019: 未解決の外部シンボル "void __cdecl Back_Finalize(struct Back_t)" (?Back_Finalize@@YAXUBack_t@@@Z) が関数 _WinMain@16 で参照されました。
1>main.obj : error LNK2019: 未解決の外部シンボル "void __cdecl Back_Graph(struct Back_t)" (?Back_Graph@@YAXUBack_t@@@Z) が関数 _WinMain@16 で参照されました。
1>C:\visual studio 2010\Projects\test\Debug\test.exe : fatal error LNK1120: 外部参照 2 が未解決です。
ソースは長くなりますが以下の通りです。
サイトのPlayerのプログラムを参考にして作りました。
この方法だと難しいのでしょうか?
/* main.cpp*/
#include "DxLib.h"
#include "Player.h"
#include "Keyboard.h"
#include "background.h"
// プログラムは WinMain から始まります
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow )
{
ChangeWindowMode(TRUE);
if( DxLib_Init() == -1 ) // DXライブラリ初期化処理
{
return -1 ; // エラーが起きたら直ちに終了
}
Player_t Player1, Player2;
Player_Initialize( &Player1, 0 );// 初期化
Player_Initialize( &Player2, 200 );// 初期化
Back_t Title;
Back_Initialize(&Title);
while( ScreenFlip()==0 && ProcessMessage()==0){
Back_Graph(Title);//背景
Keyboard_Update();
Player_Calc( &Player1 ); // 計算
Player_Calc( &Player2 ); // 計算
Player_Graph( Player1 ); // 描画
Player_Graph( Player2 ); // 描画
}
Player_Finalize( Player1 ); // 終了処理
Player_Finalize( Player2 ); // 終了処理
Back_Finalize(Title);
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
/* background.cpp */
#include "DxLib.h"
#include "Background.h"
void Back_Initialize(Back_t *Back){
Back->Image = LoadGraph("画像/titleback.png");
}
void Background_Gragh(Back_t Back){
DrawGraph( 0, 0, Back.Image, TRUE );
}
void Background_Finalize( Back_t Back ){
DeleteGraph( Back.Image );
}
/* background.h */
#ifndef DEF_BACK_H //二重include防止
#define DEF_BACK_H
typedef struct{
int Image;
} Back_t;
// 初期化をする
void Back_Initialize(Back_t *Back);
// 描画する
void Back_Graph(Back_t Back);
// 終了処理をする
void Back_Finalize( Back_t Back );
#endif
/* Player.cpp */
#include "DxLib.h"
#include "Keyboard.h"
#include "player.h"
// 初期化をする
void Player_Initialize( Player_t *Player, int y ){
Player->Image = LoadGraph("画像/キャラクタ01.png");
Player->y = y;
}
// 動きを計算する
void Player_Calc( Player_t *Player ){
if( Keyboard_Get( KEY_INPUT_UP ) > 0 ){
Player->y--;
}
if( Keyboard_Get( KEY_INPUT_DOWN ) > 0 ){
Player->y++;
}
}
// 描画する
void Player_Graph( Player_t Player ){
DrawGraph( 0, Player.y, Player.Image, TRUE );
}
// 終了処理をする
void Player_Finalize( Player_t Player ){
DeleteGraph( Player.Image );
}
/* Player.h */
#ifndef DEF_PLAYER_H //二重include防止
#define DEF_PLAYER_H
typedef struct{
int Image;
int y;
} Player_t;
// 初期化をする
void Player_Initialize( Player_t *Player, int y );
// 動きを計算する
void Player_Calc( Player_t *Player );
// 描画する
void Player_Graph( Player_t Player );
// 終了処理をする
void Player_Finalize( Player_t Player );
#endif