さっそく自作関数を作って1面を作ってみたのですがデバッグがうまくいきません。
ソースですが
// マリオっぽい
#include "DxLib.h"
int PlayerX , PlayerY ;
int JumpPower ;
int PlayerGraph ;
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
ChangeWindowMode(TRUE);
if (DxLib_Init() == -1) return -1;
char Key[256];
SetGraphMode( 640,480,16 ) ;
// 描画先画面を裏画面にセット
SetDrawScreen( DX_SCREEN_BACK ) ;
// グラフィックのロード
PlayerGraph = LoadGraph( "star1.bmp" ) ;
// キャラクターの初期データをセット
PlayerX = 0 ;
PlayerY = 0 ;
JumpPower = 0 ;
int White;
White = GetColor( 255 , 255 , 255 ) ; // 白色の値を取得
int Sound;
Sound= LoadSoundMem("test.wav");
void Draw(){
DrawGraph( PlayerX , PlayerY , PlayerGraph , TRUE ) ;// プレイヤーを描画する
DrawBox (0, 384 , 200 , 480 , White , TRUE ) ;
DrawBox (259,384 , 640 , 480 , White , TRUE ) ;
DrawLine (350,300 , 450 , 0 , White ) ;
DrawLine (450,0 , 550 , 300 , White ) ;
DrawLine (350,300 , 550 , 300 , White ) ;
DrawLine (450,300 , 350 , 384 , White ) ;
DrawLine (450,300 , 550 , 384 , White ) ;
DrawLine (600,0,600,480,White ) ;
}
//1面
//****************************************************************************************************************//
while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE])
{
//↑メッセージ処理 ↑画面をクリア ↑キーボード入力状態取得 ↑ESCが押されていない
if (Key[KEY_INPUT_UP]== 1) PlayerY -= 2; // 上を押していたら上に進む
if (Key[KEY_INPUT_DOWN]== 1) PlayerY += 2 ; // 下を押していたら下に進む
if (Key[KEY_INPUT_RIGHT]== 1) PlayerX += 2 ; // 右を押していたら右に進む
if (Key[KEY_INPUT_LEFT]== 1) PlayerX -= 2 ; // 左を押していたら左に進む
PlayerY -= JumpPower ;// 落下処理
JumpPower -= 1;// 落下加速度を加える
//左に行きすぎないように{
if( PlayerX < 0 )
{
PlayerX = 0 ;
}
//ひだりに行きすぎないように}
//次の面へ{
if( PlayerX > 600 ){
if(CheckSoundMem(Sound)==0) //現在ショット音が再生されていなければ
PlaySoundMem(Sound,DX_PLAYTYPE_BACK); //test.wavのバックグラウンド演奏
break;
}
//次の面へ}
if( PlayerX > 610 )
{
PlayerX = 610 ;
}
// もし地面についていたら止まる
if( PlayerY > 355 )
{
PlayerY = 355 ;
JumpPower = 0 ;
}
//落下ゾーン//*******************************************************************************//
if (200<= PlayerX && PlayerX<240 && PlayerY==355 ) {
//PlayerYの値
for(PlayerY=355; PlayerY<=470;PlayerY+= 5)
{
ClearDrawScreen();
if( ProcessMessage() == -1 ) break ;//エラーが起きたら終了
DrawBox ( 0 , 384 , 200 , 480 , White , TRUE ) ;
DrawBox ( 259, 384 , 640 , 480 , White , TRUE ) ;
DrawLine ( 350 , 300 , 450 , 0 , White ) ;
DrawLine ( 450 , 0 , 550 , 300 , White ) ;
DrawLine ( 350 , 300 , 550 , 300 , White ) ;
DrawLine ( 450 , 300 , 350 , 384 , White ) ;
DrawLine ( 450 , 300 , 550 , 384 , White ) ;
DrawLine ( 600 , 0 , 600 , 480 , White ) ;
DrawGraph( PlayerX , PlayerY , PlayerGraph , TRUE ) ;// プレイヤーを描画する
ScreenFlip() ; // 裏画面データを表画面へ反映
}
//PlayerYの値
//ゲームオーバ
if(PlayerY=475){
if(CheckSoundMem(Sound)==0) //現在ショット音が再生されていなければ
PlaySoundMem(Sound,DX_PLAYTYPE_BACK); //test.wavのバックグラウンド演奏
PlayerX=0; PlayerY=355;}
//ゲームオーバ
}
//落下ゾーン*************************************************************************************//
// ジャンプボタンを押していて、地面についていたらジャンプ
if ((Key[KEY_INPUT_A]==1) && PlayerY == 355 ) JumpPower = 20 ;
Draw();
ClearDrawScreen() ;// 画面を初期化する
// 裏画面の内容を表画面に反映させる
ScreenFlip() ;
}
//*********************************************************************************************************//
//1面
DxLib_End() ; // DXライブラリ使用の終了処理
return 0 ; // ソフトの終了
}
でエラーが
1>------ ビルド開始: プロジェクト: mario, 構成: Debug Win32 ------
1>コンパイルしています...
1>marioppoi.cpp
1>c:\program files\microsoft platform sdk\include\mmreg.h : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
1>c:\users\マリオっぽい改良\marioppoi.cpp(29) : error C2601: 'Draw' : ローカル関数の定義が正しくありません。
1> c:\users\マリオっぽい改良\marioppoi.cpp(7): この行は '{' を含んでいますが、これに対応するものがありません。
1>c:\users\マリオっぽい改良\marioppoi.cpp(31) : error C2065: 'White' : 定義されていない識別子です。
1>ビルドログは "file://c:\Users\マリオっぽい改良\Debug\BuildLog.htm" に保存されました。
1>mario - エラー 2、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========