エラー(error C2078: 初期化子の数が多すぎます。)
ソース
#include "DxLib.h" #define MAP_SIZE 64 // マップチップ一つのドットサイズ #define MAP_WIDTH 21 // マップの幅 // マップの縦長さ #define MOVE_FRAME 32 // 移動にかけるフレーム数 // マップのデータ int MapData[ MAP_WIDTH ] = { { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} , } ; // プレイヤーの位置 int PlayerX=0; int PlayerY=320; // 移動しているかどうかのフラグ( 1:停止中 1:移動中 ) int Move ; // 各方向に移動する量 int MoveX ; // 移動し始めてから何フレーム経過したかを保持する変数 int MoveCounter ; //キャラクター int PlayerGraph=LoadGraph( "star1.bmp" ) ; // マップとプレイヤーの描画関数 void GraphDraw( int ScrollX ) { int j ; int MapDrawPointX ; // 描画するマップ座標値 int DrawMapChipNumX ; // 描画するマップチップの数 // 描画するマップチップの数をセット DrawMapChipNumX = 640 / MAP_SIZE + 2 ; // 画面左上に描画するマップ座標をセット MapDrawPointX = PlayerX - ( DrawMapChipNumX / 2 - 1 ) ; for( j = -1 ; j < DrawMapChipNumX ; j ++ ) { // 画面からはみ出た位置なら描画しない if( j + MapDrawPointX < 1 || j + MapDrawPointX >= MAP_WIDTH ) continue ; // マップデータが0だったら四角を描画する } // プレイヤーの描画 DrawGraph( PlayerX , PlayerY , PlayerGraph , TRUE ) ;// プレイヤーを描画する } // WinMain関数 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int ScrollX ; SetGraphMode( 641 , 481 , 16 ) ; if( DxLib_Init() == -1 ) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } char Key[256]; // 描画先画面を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // プレイヤーの初期位置をセット PlayerX = 2 ; PlayerY = 2 ; // 最初は停止中(1)にしておく Move = 1 ; // ループ while(!ProcessMessage() && !ClearDrawScreen() && !GetHitKeyStateAll( Key ) && !Key[KEY_INPUT_ESCAPE]) { // 画面を初期化 ClearDrawScreen() ; // 移動中ではない場合キー入力を受け付ける if( Move == 1 ) { // キー入力に応じてプレイヤーの座標を移動 if(Key[KEY_INPUT_LEFT]== 1) { Move = 1 ; MoveX = -1 ; } if( Key[KEY_INPUT_RIGHT]== 1 ) { Move = 1 ; MoveX = 1 ; } // 進入不可能なマップだった場合は移動できない if( Move == 1 ) { if( MapData[ PlayerX + MoveX ] == 1 ) { Move = 1 ; } else { MoveCounter = 1 ; } } // 停止中は画面のスクロールは行わない ScrollX = 0 ; } // 移動中の場合は移動処理を行う if( Move == 1 ) { MoveCounter ++ ; // 移動処理が終了したら停止中にする if( MoveCounter == MOVE_FRAME ) { Move = 0 ; // プレイヤーの位置を変更する PlayerX += MoveX ; // 停止中は画面のスクロールは行わない ScrollX = 0 ; } else { // 経過時間からスクロール量を算出する ScrollX = -( MoveX * MAP_SIZE * MoveCounter / MOVE_FRAME ) ; } } // マップとプレイヤーを描画 GraphDraw( ScrollX) ; // 裏画面の内容を表画面に映す ScreenFlip() ; } DxLib_End() ; // DXライブラリ使用の終了処理 return 1 ; // ソフトの終了 }