int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { SetMainWindowText( "LED ドットマトリックスカレンダー" ); // ウインドウタイトルの変更 ChangeWindowMode( TRUE ); // ウィンドウモード SetGraphMode( 600, 540, 16 ); // ウィンドウサイズの変更 SetOutApplicationLogValidFlag( false ); // ログを出力しない // DXライブラリの初期化 if( DxLib_Init() == -1 ) { MessageBox( GetMainWindowHandle(), "DXライブラリの初期化に失敗しました。\nアプリケーションを終了します。", "エラーが発生しました", MB_OK + MB_ICONEXCLAMATION ); return -1; } // 画面の描画先をリアバッファーに設定します。 SetDrawScreen( DX_SCREEN_BACK ); // ここから開始 CalSystem cals; cals.CalMain(); // DXライブラリ終了処理 DxLib_End(); return 0; }
bool InitWindow(void){ SetGraphMode(256,384,32); SetMainWindowText("Petitemu ver 0.10"); ChangeWindowMode(TRUE); if(DxLib_Init()==-1)return false; return true; }
void system_init() { SetOutApplicationLogValidFlag(FALSE); SetGraphMode(640, 480, 16); ChangeWindowMode(true); SetWindowSizeExtendRate(1.5); SetMainWindowText("log_test"); }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetWindowIconID(101); SetMainWindowText("Natasha"); ChangeWindowMode(TRUE); SetGraphMode(ScreenWidth, ScreenHeight, 32); Func::setBackgroundColor0x(0x000000); SetOutApplicationLogValidFlag(FALSE);//logを生成しないように設定 if (DxLib_Init() == 1){ return -1; }//初期化に失敗時にエラーを吐かせて終了 Input::get(); Screen::get(); GameMgr::get().loadResource(); GameMgr::get().loadButton(); while( ProcessMessage() == 0) { GameMgr::get().update(); ButtonAdder::addDValBoolButton("ToWhite"); if (DVal::bool_["ToWhite"]){ Screen::setWhiteOut(5); Screen::setShake(10); DVal::bool_["ToWhite"] = false; } if (Input::keyDown(KEY_INPUT_Z)){ Screen::setWhiteOut(5); Screen::setShake(10); } if (Input::keyDown(KEY_INPUT_X)){ } if (Input::keyDown(KEY_INPUT_C)){ } Screen::DrawStart(); //描画開始, ClearScreen { GameMgr::get().draw(); Draw.center(Input::mousePos(), Graph::handle("dot32"), 255); } Screen::DrawEnd(); //描画終了, ScreenFlip //フラグがtrueならゲーム終了 if (gameEndFlag){ break; } } DxLib_End(); return 0; }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { //--------------------------------------------初期設定ここから SetGraphMode(WINDOW_SIZE_X, WINDOW_SIZE_Y, 32); SetBackgroundColor(0, 0, 0); SetMainWindowText("initializing..."); SetWindowIconID(101); if (WINDOW_MODE == FALSE) { SetFullScreenResolutionMode(DX_FSRESOLUTIONMODE_DESKTOP); } else { ChangeWindowMode(true); SetWindowSize(1280, 720); } if (DxLib_Init() == -1)return -1; SetWindowSizeChangeEnableFlag(TRUE); SetDrawScreen(DX_SCREEN_BACK); SetOutApplicationLogValidFlag(FALSE); SetAlwaysRunFlag(TRUE); SetMainWindowText("指打"); SetDrawMode(DX_DRAWMODE_BILINEAR); OutputDebugString("game start.\n"); //--------------------------------------------初期設定ここまで //--------------------------------------------メインゲーム処理ここから system_control sys_ctrl; sys_ctrl.init(); sys_ctrl.exec(); //--------------------------------------------メインゲーム処理ここまで DxLib_End(); OutputDebugString("game end.\n"); return 0; }
// プログラムは WinMain から始まります int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); // ウィンドウモードに設定 SetMainWindowText("東方崩固玉"); //タイトルの指定。何にしよう SetDrawScreen(DX_SCREEN_BACK); //SetBackgroundColor(0, 0, 0); //背景の色変更5 if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } Scene scene; //現在の場面 Key_Input* m_key; //キー入力用 m_key = Key_Input::GetInstance(); //int reaction_return; //Reaction()の返り値を受け取る Flag flag; //Events *events = Events::GetInstance(); //Colors colors; //コンストラクタ FPSer fpser; Common_TH common_th; //初期化する while (1) //メインループ { ClearDrawScreen(); //画面をクリア。描画処理はこれより後に書く m_key->KeyUpdate(); //key_input.KeyUpdate(); //キー入力 //reaction_return = nowpointa->Reaction(); //キー入力などによる情報の更新 scene.Reaction(); //キー入力などによる情報の更新 scene.Draw(); //現在の場面の描画 fpser.CountFPS(); //デバッグ的な ScreenFlip(); //裏と表の仲介役。描画処理よりも後に書く if (ProcessMessage()) //×クリック待ち { break; } if (CheckHitKey(KEY_INPUT_ESCAPE) == 1) //Esc入力待ち { break; } } DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 }
void text(int *flag){ static int font; if (*flag == 0){ font = CreateFontToHandle(NULL, 64, 5, DX_FONTTYPE_NORMAL); *flag = 1; } ChangeFont("MS 明朝"); SetMainWindowText("タイトル"); DrawFormatString(20, 430, 0xffffff, "2キーで2人プレイ、3キーで3人プレイ、4キーで4人プレイ、"); DrawFormatString(20, 450, 0xffffff, "Cキーでギャラリー画面へ"); DrawStringToHandle(150, 240 - 42, "神 経 衰 弱", GetColor(255, 100, 50), font); }
// WinMain関数 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ifstream ifs("../config/default.conf"); int tmp; ifs >> PORT; ifs >> tmp; SERVER_IP.d1 = tmp; ifs >> tmp; SERVER_IP.d2 = tmp; ifs >> tmp; SERVER_IP.d3 = tmp; ifs >> tmp; SERVER_IP.d4 = tmp; ifs >> CLIENT_NUM; // 画面モードの設定 ChangeWindowMode(true); SetGraphMode( WINDOW_WIDTH, WINDOW_HEIGHT, 16 ) ; // DXライブラリ初期化処理 if( DxLib_Init() == -1 ) return -1; // グラフィックの描画先を裏画面にセット SetDrawScreen( DX_SCREEN_BACK ); SetMainWindowText( "Bullet of the Chaos"); #ifdef SOLOPLAY_MODE soloplay_main(); #endif // SOLOPLAY_MODE #ifdef NETWORK_SOLOPLAY_MODE network_soloplay_main(); #endif // NETWORK_SOLOPLAY_MODE #ifdef SERVER_MODE server_main(); #endif // SERVER_MODE #ifdef CLIENT_MODE client_main(); #endif // CLIENT_MODE DxLib_End(); // DXライブラリ使用の終了処理 return 0; // ソフトの終了 }
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ){ read_xml(CONFIG_FILE_NAME, gConfig); ChangeWindowMode(gConfig.get("WindowMode",true)); SetMainWindowText( PJTITLE ); if( DxLib_Init() == -1 ){ return -1; // エラーが起きたら直ちに終了 } LPCSTR font_path = "img\\font.ttf"; // 読み込むフォントファイルのパス AddFontResourceEx(font_path, FR_PRIVATE, NULL); ChangeFont("Neuropol",DX_CHARSET_DEFAULT); ChangeFontType( DX_FONTTYPE_ANTIALIASING_EDGE ); shotButton = gConfig.get("Pad.Shot",PAD_INPUT_1); subButton = gConfig.get("Pad.Sub",PAD_INPUT_2); SetJoypadInputToKeyInput(DX_INPUT_PAD1, shotButton, gConfig.get("Key.Shot", KEY_INPUT_Z), -1, -1, -1 ) ; SetJoypadInputToKeyInput(DX_INPUT_PAD1, subButton, gConfig.get("Key.Sub", KEY_INPUT_X), -1, -1, -1 ) ; gGameManager.Set(&GameManager::Init); for(;;){ //メインループ //SetDrawScreen(DX_SCREEN_BACK); SetDrawScreen(gDrawScr); ClearDrawScreen(); if(ProcessMessage()==-1 || GameMain()==1){break;} //ゲーム本体を実行 SetDrawScreen( DX_SCREEN_BACK ) ; //裏スクリーンに描画対象を移す SetDrawBlendMode(DX_BLENDMODE_ALPHA,255); DrawGraph(0,0,gDrawScr,FALSE); //実際に描画 SetDrawBlendMode(DX_BLENDMODE_NOBLEND,0); //FPS描画 { int NowFPS = gFPS.Get(); int Col = (int)(255 * NowFPS / gFPS.GetDefaultFPS()); DrawFormatString(SCR_WIDTH-80,SCR_HEIGHT-20,GetColor(255,Col,Col),"%02dFPS",NowFPS); } ScreenFlip(); CaptureScreen(); gFPS.Fix(); } DxLib_End() ; // DXライブラリ使用の終了処理 write_xml(CONFIG_FILE_NAME,gConfig); return 0 ; // ソフトの終了 }
//********************************************************* // ゲームの初期化を行う //********************************************************* int GameInit(void) { // Dxライブラリ初期化前の処理 SetGraphMode(WIN_W, WIN_H, 32); ChangeWindowMode(TRUE); // ウィンドウモードで起動 SetMainWindowText("テスト"); // ウィンドウタイトルを設定 // Dxライブラリの初期化 // エラーが起きたら直ちに終了 if (DxLib_Init() == -1) return -1; // Dxライブラリ初期化後の処理 SetDrawScreen(DX_SCREEN_BACK); // 描画先を裏画面にする SetTransColor(0, 255, 0); // ここまでゲーム固有の初期化 // 正常終了 return 0; }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetWindowIconID(101); SetMainWindowText("CRYSTAL WINGS"); ChangeWindowMode(TRUE); SetGraphMode(ScreenWidth, ScreenHeight, 32); SetBackgroundColor(255, 255, 255);//背景白に設定 SetOutApplicationLogValidFlag(FALSE);//logを生成しないように設定 if (DxLib_Init() == 1){ return -1; }//初期化に失敗時にエラーを吐かせて終了 Input::get(); Screen::get(); GameMgr::get().loadResource(); while( ProcessMessage() == 0) { GameMgr::get().update(); #if DEBUG == 1 if (Input::keydown(KEY_INPUT_A)){ } #endif Screen::DrawStart(); //描画開始, ClearScreen { GameMgr::get().draw(); GameMgr::get().draw2(); } Screen::DrawEnd(); //描画終了, ScreenFlip //フラグがtrueならゲーム終了 if (mgr.gameEndFlag){ break; } } DxLib_End(); return 0; }
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ SetMainWindowText("Give Me Wing"); SetOutApplicationLogValidFlag(FALSE); ChangeWindowMode(TRUE), DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK ); //ウィンドウモード変更と初期化と裏画面設定 font_db.LoadFontData(); //画像ファイルのロード img_db.LoadImgData(); sound_db.LoadSoundData(); Fps fps; GameLoop loop; bool game_start = FALSE; while( ScreenFlip()==0 && ProcessMessage()==0 && ClearDrawScreen()==0 ){ input.Update(); //キーボード情報の更新 fps.Update(); // ↓ 処理本体をここに書く ↓ if(!game_start){ game_start = TRUE; } if(game_start){ if(loop.Loop() == 1) break; } SetDrawArea(GAME_X,GAME_Y,GAME_X+GAME_WIDTH,GAME_Y+GAME_HEIGHT);//描画エリアをゲーム範囲に設定 efect.Update(); SetDrawArea(0,0,WINDOWSIZE_X,WINDOWSIZE_Y); //描画エリアを元に戻す // ↑ 処理本体をここに書く ↑ fps.Draw(); fps.Wait(); //fps制御 } DxLib_End(); //終了処理 return 0; }
int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevInstance , LPSTR lpCmdLine , int nCmdShow ) { SetWindowIconID(101); SetMainWindowText("UNDEAD SISTER REBIRTH"); ChangeWindowMode( TRUE ); SetGraphMode( ScreenWidth , ScreenHeight , 32 ); SetOutApplicationLogValidFlag( FALSE ) ;//logを生成しないように設定 if(DxLib_Init() == 1){return -1;}//初期化に失敗時にエラーを吐かせて終了 SetDrawScreen( DX_SCREEN_BACK ) ; Screen::get(); Input::get().update(); Graph::get(); Sound::get(); GraphDiv::get(); Font::get(); Draw::get(); Datamgr::get(); manager::get(); while( ProcessMessage() == 0) { SetDrawScreen(DX_SCREEN_BACK); ClearDrawScreen();//裏画面消す Input::update();//キー更新・マウス座標更新・経過フレーム更新 manager::get().update(); manager::get().draw(); if (Input::keydown(KEY_INPUT_ESCAPE)){ Sound::stopall(); manager::get().init(); manager::get().gamestate_ = manager::pretitle; } //終了処理 if (manager::get().gamestate_ == manager::exit){ break; } /* //TODO デバッグ情報はstageにも有り //TODO デバッグ用 //敵を生成 if (Input::keydown(KEY_INPUT_X)){ for (int i = -15; i < 15; i++){ manager::get().enemy_.addmarge<emy_rot_l_tos>(i*0.2, -200); } } //敵を生成 if (Input::keydown(KEY_INPUT_C)){ for (int i = 0; i < 50; i++){ manager::get().enemy_.add<emy_goleft>(512 + i * 20, 512); } } //TODO デバッグ用 //武器を変更 auto& w = manager::get().weapon_; for (int i = KEY_INPUT_1; i <= KEY_INPUT_6; i++){ if (Input::keydown(i)){ Sound::playback("menumove"); if (Input::keynow(KEY_INPUT_LSHIFT)){ w.sub = w.subvec[i - KEY_INPUT_1]; for (auto& i : w.subvec){ i->init(); } } else{ w.main = w.mainvec[i - KEY_INPUT_1]; for (auto& i : w.mainvec){ i->init(); } } } } //TODO デバッグ用 //Z押されている時にマウス座標描画 if (Input::keynow(KEY_INPUT_Z)){ SetDrawBlendMode(DX_BLENDMODE_ALPHA, 255); int stry = 300; Draw_::righttext(800, 300, 0xFFFFFF, Font::handle("SegoeUI20"), "MX:" + std::to_string(Input::mousex_()) + " MY:" + std::to_string(Input::mousey_()), 200); Draw_::righttext(800, 320, 0xFFFFFF, Font::handle("SegoeUI20"), "MX:" + std::to_string(Input::mousex()) + " MY:" + std::to_string(Input::mousey()), 200); } */ ScreenFlip();//裏画面を表画面にコピー } DxLib_End(); return 0; }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(true); SetGraphMode(640, 480, 16); DxLib_Init(); SetDrawScreen(DX_SCREEN_BACK); SetDrawMode(DX_DRAWMODE_BILINEAR); SetMainWindowText("禁断の果実と楽園の護人"); //int titlebg = LoadGraph("picture/taitol.bmp"); int titletext = LoadGraph("picture/title.bmp"); int bg = LoadGraph("picture/playbg_2.bmp"); int tree = LoadGraph("picture/bigtreekai.bmp"); char key[256]; Opening openingscene; Play playscene; MusicSelect musicselect; Result resultscene; enum{ OPENING, PLAY, MUSICSELECT, RESULT }scene=OPENING; while(Process(key)){ switch(scene){ case OPENING: DrawGraph(0, 0, bg, false); DrawGraph(0, 0, tree, true); DrawGraph(0, 0, titletext, true); if( ProcessMessage() == -1 ){ break ; // エラーが起きたらループを抜ける } openingscene.UpDate(); openingscene.Draw(); if(key[KEY_INPUT_LEFT]==1 || openingscene.HitJudge() == true){ scene = MUSICSELECT; } if(key[KEY_INPUT_ESCAPE]==1){ DxLib_End(); } break; case MUSICSELECT: if( ProcessMessage() == -1 ){ break ; // エラーが起きたらループを抜ける } DrawGraph(0, 0, bg, false); DrawGraph(0, 0, tree, true); musicselect.UpDate(); musicselect.Draw(); if(musicselect.HitJudge() == true){ playscene.Loadfile(musicselect.GetMusicfile()); playscene.SetMusic(musicselect.GetMusic()); playscene.SoundPlay(); scene = PLAY; } if(key[KEY_INPUT_UP]==1){ scene = PLAY; } if(key[KEY_INPUT_ESCAPE]==1){ DxLib_End(); } break; case PLAY: if( ProcessMessage() == -1 ){ break ; // エラーが起きたらループを抜ける } DrawGraph(0, 0, bg, false); DrawGraph(0, 0, tree, true); playscene.UpDate(); playscene.Draw(); if(key[KEY_INPUT_RIGHT]==1 || playscene.isPlaying() == false){ playscene.SoundStop(); scene = RESULT; } if(key[KEY_INPUT_ESCAPE]==1){ DxLib_End(); } break; case RESULT: DrawGraph(0, 0,bg, false); resultscene.Update(); resultscene.Draw(); if(key[KEY_INPUT_DOWN]==1 || resultscene.HitJudge() == true){ scene = OPENING; } if(key[KEY_INPUT_ESCAPE]==1){ DxLib_End(); } break; } } DxLib_End(); return 0; }
void init_Dx(){ SetMainWindowText("ギャラリー"); }
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { SetWindowIconID(IDI_ICON1); SetMainWindowText(titlebar),ChangeWindowMode(TRUE), SetGraphMode(WIDTH, HEIGHT, 32), DxLib_Init(),SetDrawScreen(DX_SCREEN_BACK); //ウィンドウモード、960*720のサイズ //画像の読み込み GraphicHandle[0] = LoadGraph("image/Title.png"); GraphicHandle[1] = LoadGraph("image/Player.png"); GraphicHandle[2] = LoadGraph("image/Comet.png"); GraphicHandle[3] = LoadGraph("image/Backscreen.png"); GraphicHandle[4] = LoadGraph("image/Clearscreen.png"); GraphicHandle[5] = LoadGraph("image/Sf_title.png"); GraphicHandle[6] = LoadGraph("image/Buttun_on.png"); GraphicHandle[7] = LoadGraph("image/Buttun_off.png"); GraphicHandle[8] = LoadGraph("image/Ready.png"); GraphicHandle[9] = LoadGraph("image/Start.png"); GraphicHandle[10] = MakeScreen(1024, 1024, false); GraphicHandle[11] = LoadGraph("image/Ranking.png"); GraphicHandle[12] = LoadGraph("image/Pause.png"); //音楽の読み込み SoundHandle[0] = LoadSoundMem("music/bgm.mp3"); SoundHandle[1] = LoadSoundMem("music/select.mp3"); SoundHandle[2] = LoadSoundMem("music/deside.mp3"); SoundHandle[3] = LoadSoundMem("music/miss.mp3"); SoundHandle[4] = LoadSoundMem("music/gameover.mp3"); GScoreFont = CreateFontToHandle("Meiryo UI Bold", 20, -1); RScoreFont = CreateFontToHandle("Meiryo UI Bold", 32, -1); CScoreFont = CreateFontToHandle("Meiryo UI Bold", 64, -1); ChangeFont("Meiryo UI Bold"); //フォントの変更 Title_Initialize(); //タイトルの初期化処理 Game_Initialize(); //ゲームの初期化処理 Clear_Initialize(); //クリア画面の初期化処理 Rank_Initialize(); //ランキング画面の初期化処理 Logo_Initialize(); while (Loop() == true) { Keyboard_Update(); GamePad_Update(); switch (NowScene()) { //現在のシーンによって動作を変える case logo: Logo_Update(); break; case title: Title_Update(); Title_Draw(); break; case gamepre: Game_Initialize(); ChangeScene(game); case game: Game_Update(); Game_Draw(); break; case clear: Clear_Update(); Clear_Draw(); break; } } Title_Finalize(); //タイトルの終了処理 Game_Finalize(); //ゲームの終了処理 Clear_Finalize(); //クリア画面の終了処理 Rank_Finalize(); //ランキング画面の終了処理 Logo_Finalize(); //ロゴ画面の終了処理 DxLib_End(); // DXライブラリ使用の終了処理 return 0; }
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { ChangeWindowMode(TRUE); //SetMouseDispFlag(TRUE); SetMainWindowText("調布祭AI対戦2013") ; SetDrawMode(DX_DRAWMODE_BILINEAR); SetScreenMemToVramFlag(FALSE); SetAlwaysRunFlag(TRUE); SetDrawScreen( DX_SCREEN_BACK); if(DxLib_Init()==-1) // DXライブラリ初期化処理 { return -1 ; // エラーが起きたら直ちに終了 } //デバック用にコンソールを出現させる /* AllocConsole(); freopen("CONOUT$","w",stdout); freopen("CONIN$","r",stdin);z */ Mode gamemode=OPENING; AI_T ai[AI_NUM]; Takara takara; int death[AI_NUM]={0}; Tagger tagger[TAGGER_NUM]; int tagger_num = 0; int STAGE[WIDTH][HEIGHT]={0}; int round=0; int start=0; int end=0; int newround=0; int StartTime,TimeLimit; for(int i=0;i<AI_NUM;i++){ ai[i].entry=0; } while(ProcessMessage()!=-1){ int speed=0; switch(gamemode){ case OPENING: start=intro(ai,takara); if(start==1)gamemode=SETTING; break; case SETTING: make_Stage(STAGE,takara);//マップ構成 do{ takara.x=GetRand(WIDTH/2-2)+WIDTH/2; takara.y=GetRand(HEIGHT/2-1)+1; }while(STAGE[takara.x][takara.y]==1); takara.ich=0; takara.drop=0; takara.muteki=0; init_Tagger(tagger,STAGE,takara);//鬼の初期化 //tagger_numは鬼の要素番号 init_Ai(ai,STAGE); newround=1; round++; TimeLimit=TIME_LIMIT*60*79;//ゲーム開始時の時刻に合わせる gamemode=RUNNING; break; case RUNNING: TimeLimit-=79; if(TimeLimit<0)TimeLimit=0; for(int i=0;i<TAGGER_NUM;i++){ if(tagger[i].step==0){ //tagger[tagger_num].act=next_Tagger(tagger[tagger_num],STAGE,ai); tagger[i].act=tagger[i].moveFunc(tagger[i].x,tagger[i].y,STAGE,takara); //AIと一緒で、moveFunc使う } } for(int i=0;i<AI_NUM;i++){ if(ai[i].step == 0 && ai[i].entry==1){ setview_Ai(&ai[i],STAGE); //ai[i].act=next_Ai(ai[i].view); //henteko : 下のmoveFunc()を使うためコメントアウト ai[i].act = ai[i].moveFunc(ai[i].view,takara.ich,ai[i].takara_flag,newround); } } newround=0; /*if(TimeLimit>TIME_LIMIT*45*79)speed=0; else if(TimeLimit>TIME_LIMIT*30*79)speed=1; else if(TimeLimit>TIME_LIMIT*15*79)speed=1; else speed=3;*/ for(int i=0;i<TAGGER_NUM;i++){ update_Tagger(&tagger[i],STAGE); } for(int i=0;i<AI_NUM;i++){ if(ai[i].entry==1){ update_Ai(&ai[i],STAGE,&takara,speed); if(ai[i].life==1){//捕まった場合 ai[i].x=1; ai[i].y=HEIGHT-2; ai[i].s_x=(ai[i].x+0.5)*BOX; ai[i].s_y=(ai[i].y+0.5)*BOX; ai[i].act=STOP; ai[i].step=0; STAGE[ai[i].x][ai[i].y]=2; TimeLimit-=10000;//時間ペナルティ ai[i].score-=100;//点数ペナルティ ai[i].muteki=60;//捕まって数ターンは敵に見つからない ai[i].life=0; } } } update_stage(STAGE,ai,tagger,takara); ClearDrawScreen(); draw(STAGE,ai,tagger,takara); DrawFormatString(30,30,GetColor(0,255,255),"ROUND%d",round); DrawFormatString(500,15,GetColor(0,255,0),"TIME %d",TimeLimit); if(1){ for(int i=0;i<AI_NUM;i++){ for(int j=0;j<TAGGER_NUM;j++){ if(death_Ai(ai[i],tagger[j])==1 && ai[i].entry==1){ death[i]++; DrawBox(0,230,640,260,GetColor(0,0,0),1); DrawBox(-1,230,642,260,GetColor(255,0,0),0); //DrawFormatString(100,240,GetColor(255,0,0),"%sがつかまりました",ai[i].name);// 8/3 zero追記:AI捕獲の宣言をまとめた。 if(ai[i].takara_flag==1){//宝を持っていた時 takara.x=ai[i].x; takara.y=ai[i].y; takara.drop=0; takara.muteki=60*AI_NUM; ai[i].takara_flag=0; ai[i].score-=400; } ai[i].life=1; } } if(ai[i].takara_flag==1&&STAGE[ai[i].x][ai[i].y]==5/*&&ai[i].x<3&&ai[i].y>HEIGHT-4*/){//クリア判定 ai[i].score+=1000; WaitTimer(3000); if(round>=ROUND_MAX){ gamemode=ENDING; }else{ gamemode=SETTING; } break; } } } if(TimeLimit<=0){// 8/3 zero追記:タイムアップを設定 //round--; DrawString(100,240,"時間切れです",GetColor(255,0,0)); WaitTimer(3000); if(round>=ROUND_MAX){ gamemode=ENDING; } else{ gamemode=SETTING; } break; } if(CheckHitKey(KEY_INPUT_R)==1){ gamemode=SETTING; } break; case ENDING: end=ranking(ai,death); break; default: break; } if(end==1 || CheckHitKey(KEY_INPUT_ESCAPE))break; ScreenFlip(); } DxLib_End() ; // DXライブラリ使用の終了処理 return 0 ; // ソフトの終了 }
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){ //FullscreenMessage(); ChangeWindowMode( FALSE ); SetMainWindowText("高橋テトリスver0.04"); if (DxLib_Init() == -1) return -1; //初期化 load(); if (SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//裏画面化 exe_cnt=0; func_state=0; while(ProcessLoop()==0){//メインループ music_ini(); switch(func_state){ case 0: //初期ロード launch_ini(); mode=0; menu_ini(); func_state=1; break; case 1: //ロゴ画面 graph_logo(); break; case 2: //メニュー画面 control_menu(); graph_menu(); break; case 50: //モード選択画面 control_menu(); graph_menu(); break; case 51: //モード選択後移行画面 graph_menu(); menu_selected_cnt++; if (menu_selected_cnt>30) { first_ini(); func_state=100; } break; case 100: //ゲームメイン画面 control_main(); block_main(); cal_score(); graph_main(); stage_cnt++; if (gameover_flag==1 && CheckStatePad(-1,PAD_NUM_HOLD)==1) { result_ini(); func_state=101; } if (CheckStatePad(-1,PAD_NUM_PAUSE)==1) { pause_push_Pl=PadPushPlayer; StopSoundMem( bgm_handle[bgm_num] ) ; pause_select=0; func_state=999; } break; case 999: //ポーズ画面 control_game_pause(); graph_main(); if (CheckStatePad((all_cpu_flag==0)?pause_push_Pl:-1,PAD_NUM_HOLD)==1) { switch (pause_select) { case 0: PlaySoundMem( bgm_handle[bgm_num] , DX_PLAYTYPE_LOOP , FALSE ) ; func_state=100; break; case 1: first_ini(); func_state=100; break; case 2: menu_ini(); func_state=50; break; } } if (CheckStatePad((all_cpu_flag==0)?pause_push_Pl:-1,PAD_NUM_PAUSE)==1) { PlaySoundMem( bgm_handle[bgm_num] , DX_PLAYTYPE_LOOP , FALSE ) ; func_state=100; } break; case 101: //リザルト画面 control_result(); graph_main(); stage_cnt++; if (CheckStatePad(-1,PAD_NUM_HOLD)==1) func_state=102; break; case 102: //ゲームオーバー後選択画面 control_over_select(); graph_main(); stage_cnt++; if (CheckStatePad(-1,PAD_NUM_HOLD)==1) { switch (over_select) { case 0: first_ini(); func_state=100; break; case 1: menu_ini(); menu_select=mode; func_state=50; break; case 3: func_state=101; break; } } break; default: printfDx("error:不明なfunc_state\n"); break; } control_func_state(); exe_cnt++; music_play(); if(CheckStateKey(KEY_INPUT_ESCAPE)==1) break;//エスケープが入力されたらブレイク ScreenFlip();//裏画面反映 } DxLib_End();//DXライブラリ終了処理 return 0; }
static void SetTitle(const String &title) { SetMainWindowText(title.c_str()); }
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){ SetMainWindowText("Slalom_Simurator_01"); ChangeWindowMode(TRUE); SetGraphMode(640,480,32); if(DxLib_Init() == -1) { return -1; } int count_draw,count; float angle[1000]; float angle_accel=2000; float angle_vel=0; float velocity_right=500; float velocity_left=500; float x[1000]; float y[1000]; angle[0]=0; for(count_draw = 1; count_draw<=999;count_draw++){ if((angle[count_draw-1]<ang1)&&(velocity_right>=150)){ angle_accel=ANGLE_ACCEL; } if(((angle[count_draw-1]>=ang1)&&(angle[count_draw-1]<=ang2))||(velocity_right<150)){ angle_accel=0; if(velocity_right<150){ velocity_right = 150; } } if((angle[count_draw-1]<=ang3)&&(angle[count_draw-1]>=ang2)&&(velocity_left>=500)){ angle_accel=(-ANGLE_ACCEL); } if(angle[count_draw-1]>=ang3){ angle_vel = 0.0; angle_accel = 0.0; break; } angle_vel = angle_vel + angle_accel*0.001; angle[count_draw]=angle[count_draw-1] + angle_vel*0.001; velocity_left= 500 -(angle_vel*LENGTH_TREAD_LEFT*PAI)/360; velocity_right=500 +(angle_vel*LENGTH_TREAD_LEFT*PAI)/360; } x[0]=0; y[0]=0; for(count=1;count<count_draw;count++){ x[count] =x[count-1]+500*0.001*sin((angle[count]*PAI)/180); y[count] =y[count-1]+500*0.001*cos((angle[count]*PAI)/180); } DrawLine(186,280,186,280-PRE,GetColor(255,0,0)); for(count=1;count<count_draw;count++){ DrawLine(186+x[count-1],(280-PRE-y[count]),186+x[count],(280-PRE-y[count-1]),GetColor(255,0,0)); } DrawLine(186+x[count],280-PRE-y[count],186+x[count]+FOL,280-PRE-y[count],GetColor(255,0,0)); DrawBox(100,100,112,280,GetColor(255,12,0),TRUE); DrawBox(280,100,292,280,GetColor(255,12,0),FALSE); DrawBox(112,88,280,100,GetColor(255,12,0),TRUE); DrawBox(100,280,112,292,GetColor(198,60,0),TRUE); DrawBox(280,280,292,292,GetColor(198,60,0),TRUE); DrawBox(100,88,112,100,GetColor(198,60,0),TRUE); DrawBox(280,88,292,100,GetColor(198,60,0),TRUE); WaitKey(); // キー入力待ち DxLib_End(); // DXライブラリ終了処理konnitiha return 0; }