Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
bool InitWindow(void){
	SetGraphMode(256,384,32);
	SetMainWindowText("Petitemu ver 0.10");
	ChangeWindowMode(TRUE);
	if(DxLib_Init()==-1)return false;
	return true;
}
Ejemplo n.º 3
0
void system_init()
{
    SetOutApplicationLogValidFlag(FALSE);

    SetGraphMode(640, 480, 16);
    ChangeWindowMode(true);
    SetWindowSizeExtendRate(1.5);

    SetMainWindowText("log_test");
}
Ejemplo n.º 4
0
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;
}
Ejemplo n.º 5
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;
}
Ejemplo n.º 6
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;				// ソフトの終了 
}
Ejemplo n.º 7
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);

}
Ejemplo n.º 8
0
// 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;					// ソフトの終了
}
Ejemplo n.º 9
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 ;		// ソフトの終了
}
Ejemplo n.º 10
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;
}
Ejemplo n.º 11
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;
}
Ejemplo n.º 12
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;
}
Ejemplo n.º 13
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;
}
Ejemplo n.º 14
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;
}
Ejemplo n.º 15
0
void init_Dx(){
	SetMainWindowText("ギャラリー");
}
Ejemplo n.º 16
0
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;
}
Ejemplo n.º 17
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 ;				// ソフトの終了 
}
Ejemplo n.º 18
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;
}
Ejemplo n.º 19
0
	static void SetTitle(const String &title)
	{
		SetMainWindowText(title.c_str());
	}
Ejemplo n.º 20
0
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;
}