Beispiel #1
0
//スカイフィッシュの判定
void shot_sky()
{
	for(int i = 0;i<maxshot;i++)
	{
		if(sky.x+1 < shot_s[i].x+28 &&
			sky.y+10 < shot_s[i].y+20 &&
			shot_s[i].x+5 < sky.x+63 &&
			shot_s[i].y+2 < sky.y+22 &&
			sky_used == true &&
			shot_used3[i] == true)
		{
			first_shotflag = true;
			shot_used2[i] = false;
			shot_used3[i] = false;
			sky_used = false;
			sky.x = 640;
			sky_sound = false;
			score += 1500*(level+combo);
			StopSoundMem(se_chance);
			PlaySoundMem(se_sky_shot,DX_PLAYTYPE_BACK);
			for(int j=0;j<ball_kazu;j++)
			{
				shot_missflag[j] = false;
			}
		}
	}
}
Beispiel #2
0
//音楽を流さなくてもこの関数を読み込み推奨
void PlayBGM( int Number ){
	//処理を一回だけ読み込む(なお指定されたnumberの音楽がなければこの処理は前の音楽が流れ続ける)
	if(CheckSoundMem(Music[Number].Music)==0){
		for(int i=0; i<AllBGM; i++ )StopSoundMem( Music[i].Music ) ;
		PlaySoundMem( Music[Number].Music, DX_PLAYTYPE_LOOP ) ;
	}
}
Beispiel #3
0
void bgm_play() {
	int i;
	if (bgm_state==0) {
		for (i=0;i<BGM_MAX;i++) {
			if (CheckSoundMem(bgm_handle[i])==1) StopSoundMem(bgm_handle[i]) ;
		}
	} else if (bgm_state==1) {
		for (i=0;i<BGM_MAX;i++) {
			if (CheckSoundMem(bgm_handle[i])==1) StopSoundMem(bgm_handle[i]) ;
		}
		PlaySoundMem( bgm_handle[bgm_num] , DX_PLAYTYPE_LOOP ) ;
		bgm_state++;
	} else {
		bgm_state++;
	}
}
void SoundManager::StopSE(const char *tagSE)
{
	uint32_t handle = GetHandleId(tagSE);
	if(handle == INVALID_VALUE){
		return;
	}

	StopSoundMem(handle);
}
Beispiel #5
0
void Clear_Initialize()
{
	RefreshScore(score);
	clear_image = GraphicHandle[4];
	StopSoundMem(SoundHandle[0]);
	SelectCnt = 0;
	Menu_clear[0].image = GraphicHandle[6];
	Menu_clear[1].image = GraphicHandle[7];
	Menu_clear[2].image = GraphicHandle[7];
}
Beispiel #6
0
void Stage::NextStage()
{
	const bool NOT_STAGE0 = nowStage != eStage::stage0;

	StopSoundMem(hs_bgm); // NEXT STAGE のために音楽を停止
	
	if (NOT_STAGE0)
		nowStage = static_cast<eStage>(static_cast<int>(nowStage) + 1);
	else
		AllClear();
}
Beispiel #7
0
void music_play(){
	int i;
	for(i=0;i<SE_MAX;i++){
		if(se_flag[i]==1){
			if(CheckSoundMem(sound_se[i])!=0){
				if(i==8)continue;
				StopSoundMem(sound_se[i]);
			}
			PlaySoundMem(sound_se[i],DX_PLAYTYPE_BACK);
		}
	}
}
Beispiel #8
0
void MusicApple::UpDate()
{
	if(sqrt(pow(((double)mousex-x), 2)+pow(((double)mousey-y), 2)) <= hit_area){
		if(!once){
			PlaySoundMem(sound_h_demo, DX_PLAYTYPE_LOOP);
			once = true;
		}
	}else{
		once = false;
		StopSoundMem(sound_h_demo);
	}
}
Beispiel #9
0
bool MusicApple::HitJudge()
{
	 MouseInput = GetMouseInput();
    if(( MouseInput & MOUSE_INPUT_LEFT ) == 1 ){
		GetMousePoint(&mousex, &mousey);
		if(sqrt(pow(((double)mousex-x), 2)+pow(((double)mousey-y), 2)) <= hit_area){
			StopSoundMem(sound_h_demo);
			return true;
		}else{
			return false;
		}
	}
}
Beispiel #10
0
void SoundManager::Update()
{
	//! BGMのフェード処理
	if(m_fadeTag != INVALID_VALUE){
		int32_t volume = GetVolumeSoundMem(m_fadeTag);
		if(volume > 5000){
			SetVolumeSoundMem(volume - VOLUME_FADE_SPEED, m_fadeTag);
		}
		else{
			//! BGMを止める
			StopSoundMem(m_fadeTag);
			m_fadeTag = INVALID_VALUE;
		}
	}
}
Beispiel #11
0
StartScene::~StartScene(){
	switch(order.size()-1){
	case 0:
		my_mission[1] = 0;
		break;
	case 1:
		my_mission[1] = order[order.size()-1];
		break;
	default:
		break;
	}
	FileStream::write("data/data.dat", my_mission);

	StopSoundMem(Sound::start_scene);

	SetDrawBlendMode(DX_BLENDMODE_NOBLEND, 0);
}
Beispiel #12
0
void dying::startdying(){		
	//ptr->mstr_log->add("死んでしまった。");
	ptr->mstr_log->addbigstr("YOU DIED...", "you can live eternally as zombie...");
	StopSoundMem(SHandle[90]);
	PlaySoundMem(SHandle[7], DX_PLAYTYPE_BACK );
	int x1 = (int)ptr->mplayer->x;
	int y1 = (int)ptr->mplayer->y;
	for(int i = 0; i < 30; i++){ ptr->meffect->make(x1, y1, 4, -1, -1);}
	SetDrawScreen( zanzou ) ;
	SetDrawBlendMode( DX_BLENDMODE_ALPHA , 200 ) ;
	for(int i = 0; i < 15; i++){
		double angle = PI * randarc();
		double rr = 30*randarc();
		DrawRotaGraph((int)(x1+rr*cos(angle)), (int)(y1+rr*sin(angle)), randarc()*1.0+0.7, PI*randarc(), GHandle[7], 1);
	}
	SetDrawBlendMode( DX_BLENDMODE_ALPHA , 255 ) ;
	SetDrawScreen( DX_SCREEN_BACK ) ;
}
Beispiel #13
0
void SoundManager::StopBGM(bool isFade)
{
	uint32_t playBGMId = INVALID_VALUE;
	for(uint32_t i = 0; i < m_vBGM.size(); ++i){
		if(CheckSoundMem(m_vBGM.at(i).m_soundId)){
			//! BGMは一曲しかならない前提なので再生曲を見つけたら抜ける
			playBGMId = m_vBGM.at(i).m_soundId;
			break;
		}
	}

	if(isFade){
		//! フェードがありならUpdateで処理を行う
		m_fadeTag = playBGMId;
	}
	else{
		StopSoundMem(playBGMId);
	}
}
Beispiel #14
0
/* ================================================ */
void SoundManager::PlayBGM( const char *tagBGM, const uint32_t &volume )
{
	uint32_t handle = GetHandleId(tagBGM);
	if(handle == INVALID_VALUE){
		DEBUG_PRINT("【再生しようとしたBGMはロードされていない?】\n");
		return;
	}

	//! 再生中でないか確認
	if(!CheckSoundMem(handle)){
		for(uint32_t i = 0; i < m_vBGM.size(); ++i){
			//! 他のBGMはすべて止める
			StopSoundMem(m_vBGM.at(i).m_soundId);
		}
		SetVolumeSoundMem( volume, handle);
		PlaySoundMem(handle, DX_PLAYTYPE_LOOP);
		m_fadeTag = INVALID_VALUE;
	}
}
Beispiel #15
0
//bgmのメイン処理
void bgm_main() {
	if(area[stage].bgm.flag==0) {//最初に読み込む
		load_bgm(0);
		SetLoopPosSoundMem(area[stage].bgm.loop_pos[0], area[stage].bgm.handle);//ループ一セット
		area[stage].bgm.flag=1;
	}
	if(area[stage].bgm.flag==1) {//種類に応じて再生を始める
		switch(area[stage].bgm.knd[0]) {
			case 0://再生種類0なら
				if(stage_count==60) {//始まって60カウント後に再生
					PlaySoundMem(area[stage].bgm.handle, DX_PLAYTYPE_LOOP);
					area[stage].bgm.flag=2;
				}
				break;
			default:
				break;
		}
	}
	if(area[stage].bgm.flag==2) {//ボス出現時に読み込む
		if(stage_count==boss_load[stage].cnt) {//ボスが現れたら読み込む
			StopSoundMem(area[stage].bgm.handle);
			delete_bgm();
			load_bgm(1);
			SetLoopPosSoundMem(area[stage].bgm.loop_pos[1], area[stage].bgm.handle);//ループ一セット
			area[stage].bgm.flag=3;
		}
	}
	if(area[stage].bgm.flag==3) {
		switch(area[stage].bgm.knd[0]) {
			case 0://再生種類0なら
				if(stage_count==boss_load[stage].cnt) {//ボスが現れたら再生
					PlaySoundMem(area[stage].bgm.handle, DX_PLAYTYPE_LOOP);
					area[stage].bgm.flag=4;
				}
				break;
			default:
				break;
		}
	}
}
Beispiel #16
0
//BGM再生 BGMは常時一つだけ
void Sound::playbgm(std::string name){
	StopSoundMem(get().bgmhandle);
	get().bgmhandle = get().handle(name);
	PlaySoundMem(get().bgmhandle, DX_PLAYTYPE_LOOP);
}
Beispiel #17
0
//サウンドストップ
void Sound::stopSound(){//サウンドストップ
	StopSoundMem(SoundData);
}
Beispiel #18
0
static void BGMStop()
{
    for(int i = RO_BGM_1; i<= RO_BGM_T; i++) {
        StopSoundMem(se_num[i]);
    }
}
Beispiel #19
0
void Clear_Update()
{
	if (Keyboard_Get(KEY_INPUT_RIGHT) == 1 || GamePad_Get(PAD_INPUT_RIGHT)==1)
	{
		SelectCnt = (SelectCnt + 1) % 3;
	}
	if (Keyboard_Get(KEY_INPUT_LEFT) == 1 || GamePad_Get(PAD_INPUT_LEFT)==1)
	{
		SelectCnt = (SelectCnt + 2) % 3;
	}
	if (Keyboard_Get(KEY_INPUT_RIGHT) == 1 || GamePad_Get(PAD_INPUT_RIGHT) == 1 || Keyboard_Get(KEY_INPUT_LEFT) == 1 || GamePad_Get(PAD_INPUT_LEFT)==1)
	{
		for (int i = 0; i < 3; i++)
		{
			if (i == SelectCnt)
			{
				Menu_clear[i].image = GraphicHandle[6];
				PlaySoundMem(SoundHandle[1], DX_PLAYTYPE_BACK, true);
			}
			else
			{
				Menu_clear[i].image = GraphicHandle[7];
				PlaySoundMem(SoundHandle[1], DX_PLAYTYPE_BACK, true);
			}
		}
	}
	if (Keyboard_Get(KEY_INPUT_Z) == 1 && SelectCnt == 0 || GamePad_Get(PAD_INPUT_1)==1&&SelectCnt==0)	//りとらいが押されたらゲームシーンに移る
	{
		StopSoundMem(SoundHandle[4]);
		PlaySoundMem(SoundHandle[2], DX_PLAYTYPE_BACK, true);
		PlaySoundMem(SoundHandle[0], DX_PLAYTYPE_LOOP, true);
		ChangeScene(gamepre);
	}
	if (Keyboard_Get(KEY_INPUT_Z) == 1 && SelectCnt == 1 || GamePad_Get(PAD_INPUT_1)==1&&SelectCnt==1)	//たいとるが押されたらタイトルシーンに移る
	{
		StopSoundMem(SoundHandle[4]);
		PlaySoundMem(SoundHandle[2], DX_PLAYTYPE_BACK, true);
		PlaySoundMem(SoundHandle[0], DX_PLAYTYPE_LOOP, true);
		Title_Initialize();			//タイトルの初期化処理もする
		ChangeScene(title);
	}
	if (Keyboard_Get(KEY_INPUT_Z) == 1 && SelectCnt == 2||GamePad_Get(PAD_INPUT_1)==1&&SelectCnt==2)	//おわるが押されたら終了する
	{
		StopSoundMem(SoundHandle[4]);
		PlaySoundMem(SoundHandle[2], DX_PLAYTYPE_NORMAL, true);
			GameContinueFlag = false;	//ゲームの終了処理もする
	}
	if (Keyboard_Get(KEY_INPUT_X) == 1 || GamePad_Get(PAD_INPUT_2)==1)	//xキーが押されたらおわるに移動する
	{
		SelectCnt = 2;
		for (int i = 0; i < 3; i++)
		{
			if (i == SelectCnt)
			{
				Menu_clear[i].image = GraphicHandle[6];
				PlaySoundMem(SoundHandle[1], DX_PLAYTYPE_BACK, true);
			}
			else
			{
				Menu_clear[i].image = GraphicHandle[7];
				PlaySoundMem(SoundHandle[1], DX_PLAYTYPE_BACK, true);
			}
		}
	}
}
Beispiel #20
0
void Enemy::PlaySE(int dist){
	if(CheckSoundMem(dist)==1){StopSoundMem(dist);}
	PlaySoundMem(dist,DX_PLAYTYPE_BACK);
}
Beispiel #21
0
//指定した音の再生を停止
void Sound::stopone(std::string name){
	StopSoundMem(get().handle(name));
}
void Select()
{
	DrawBox(0, 0, Screen_X, Screen_Y, Status.White, TRUE);

	DrawGraph(Gp.Select_X, Gp.Select_Y, Graph.Select, TRUE);
	DrawExtendGraph(Gp.CentrJacket_X, Gp.CentrJacket_Y, Gp.CentrJacket_X + 500, Gp.CentrJacket_Y + 500, Music[Global.TargetMusic].Jacket, TRUE);

	if (CheckSoundMem(Music[Global.TargetMusic].MusicData) != 1){
		PlaySoundMem(Music[Global.TargetMusic].MusicData, DX_PLAYTYPE_LOOP);
	}

	if (Global.TargetMusic > 0){
		DrawExtendGraph(Gp.LeftJacket_X, Gp.LeftJacket_Y, Gp.LeftJacket_X + 350,
			Gp.LeftJacket_Y + 350, Music[Global.TargetMusic - 1].Jacket, TRUE);
	}
	else{
		DrawExtendGraph(Gp.LeftJacket_X, Gp.LeftJacket_Y, Gp.LeftJacket_X + 350,
			Gp.LeftJacket_Y + 350, Music[Global.MusicCnt - 1].Jacket, TRUE);
	}
	if (Global.TargetMusic < Global.MusicCnt - 1){
		DrawExtendGraph(Gp.RightJacket_X, Gp.RightJacket_Y, Gp.RightJacket_X + 350,
			Gp.RightJacket_Y + 350, Music[Global.TargetMusic + 1].Jacket, TRUE);
	}
	else{
		DrawExtendGraph(Gp.RightJacket_X, Gp.RightJacket_Y, Gp.RightJacket_X + 350,
			Gp.RightJacket_Y + 350, Music[0].Jacket, TRUE);
	}

	if (Global.Key[KEY_INPUT_V] == 1 || Global.Key[KEY_INPUT_F] == 1 ||
		Global.Key[KEY_INPUT_R] == 1 || Global.Key[KEY_INPUT_4] == 1){
		PlaySoundMem(Sound.Push, DX_PLAYTYPE_BACK);
		StopSoundMem(Music[Global.TargetMusic].MusicData);
		if (Global.TargetMusic > 0){
			Global.TargetMusic--;
		}
		else{
			Global.TargetMusic = Global.MusicCnt - 1;
		}
		PlaySoundMem(Music[Global.TargetMusic].MusicData, DX_PLAYTYPE_LOOP);
	}
	if (Global.Key[KEY_INPUT_N] == 1 || Global.Key[KEY_INPUT_J] == 1 ||
		Global.Key[KEY_INPUT_I] == 1 || Global.Key[KEY_INPUT_9] == 1){
		PlaySoundMem(Sound.Push, DX_PLAYTYPE_BACK);
		StopSoundMem(Music[Global.TargetMusic].MusicData);
		if (Global.TargetMusic < Global.MusicCnt - 1){
			Global.TargetMusic++;
		}
		else{
			Global.TargetMusic = 0;
		}
		PlaySoundMem(Music[Global.TargetMusic].MusicData, DX_PLAYTYPE_LOOP);
	}

	Global.SelectCounter++;

	if (Global.Key[KEY_INPUT_F1] == 1 || Global.Key[KEY_INPUT_B] == 1){
		PlaySoundMem(Sound.Push, DX_PLAYTYPE_NORMAL);
		Flag.Select = 2;
		Global.SelectCounter = 0;
		Global.TargetDiff = 1;
		Global.Key[KEY_INPUT_F1] = 0;
		Global.Key[KEY_INPUT_B] = 0;
	}
}
Beispiel #23
0
//BGM停止
void Sound::stopbgm(){
	StopSoundMem(get().bgmhandle);
}
Beispiel #24
0
//再生中の音をすべて停止
void Sound::stopall(){
	for (auto &i : get().handlemap){
		StopSoundMem(i.second.handle);
	}
}
Beispiel #25
0
//メインループ
void mymain()
{

	if(syokaiflag == false)
	{
		highscore_syori();
		syokaiflag = true;
	}
	if(set_graph == false)
	{
		load_files();
	}
	if(logoflag == false && file_count <41)
	{
		logo();
	}
	else if(file_count == 0)
	{
		option();

		if(option_flag == false)
		{
			if(syokikaflag == true)
			{
				syokika();
				syokikaflag = false;
			}


			if(game_endflag == false)
			{
				if(game_startflag == true)
				{
					wall();
				}
				

				if(game_startflag == false)
				{
					StopSoundMem(end_m);
					start_menu();
				}
				DrawGraph(0,0,g_wall,TRUE);
				move_myship();
				botten();
				drawshot();
				if(game_startflag == true)
				{
					ball();
					ball_hantei();
					shot_hantei();
					jiki_hantei();
					sky_jouken();
					skyfish();
					shot_sky();
					
					
					if(level == level_melo)
					{
						start_melo = false;
						level_melo += 5;
						if(melo_s == 1)
						{
							melo_s+=2;
						}
						if(melo_s == 2)
						{
							melo_s+=2;
						}
						if(melo_s == 0)
						{
							melo_s += shot_kaisuu%2+1;
						}
						if(melo_s > 5)
						{
							start_melo = true;
							melo_s = 5;
						}
					}

					if(start_melo == false)
					{
						
						StopSoundMem(bgm[0]);
						StopSoundMem(bgm[1]);
						StopSoundMem(bgm[2]);
						StopSoundMem(bgm[3]);
						StopSoundMem(bgm[4]);
						PlaySoundMem(bgm[melo_s],DX_PLAYTYPE_LOOP);
						start_melo = true;
					}
				}

				DrawGraph(0,0,g_wall_soto,TRUE);

				if(score >= 1999999999)
				{
					score = 1999999999;
				}
				if(score >= highscore)
				{
					highscore = score;
				}
				DrawFormatStringToHandle(200,463,GetColor(255,100,255),font_score,"HIGHSCORE: %d",highscore);
				DrawFormatStringToHandle(200,447,GetColor(255,100,255),font_score,"    SCORE: %d",score);
				DrawFormatStringToHandle(24,454,GetColor(255,122,0),font_lv,"Lv. %d",level);
				if(combo >= 4)
				{
					DrawFormatStringToHandle(500,454,GetColor(122,122,255),font_lv,"%d HIT!",combo);
				}
			}
			else if(game_endflag == true)
			{
				gameover();

			}
		}
		get_option();
	}

}
Beispiel #26
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;
}
void MusicConfirm()
{
	DrawBox(0, 0, Screen_X, Screen_Y, Status.White, TRUE);

	DrawGraph(Gp.Select_X, Gp.Select_Y, Graph.Select, TRUE);
	DrawExtendGraph(Gp.CentrJacket_X, Gp.CentrJacket_Y, Gp.CentrJacket_X + 500, Gp.CentrJacket_Y + 500, Music[Global.TargetMusic].Jacket, TRUE);

	switch (Global.TargetDiff)
	{
	case 0:
		if (Global.SelectCounter <= 15){
			DrawGraph((Screen_X / 2 - Gs.Easy_X) / 2, Gp.CentrJacket_Y + 600, Graph.Easy, TRUE);
		}
		DrawGraph((Screen_X - Gs.Normal_X) / 2, Gp.CentrJacket_Y + 600, Graph.Normal, TRUE);
		DrawGraph((Screen_X + Screen_X / 2 - Gs.Hard_X) / 2, Gp.CentrJacket_Y + 600, Graph.Hard, TRUE);
		break;
	case 1:
		DrawGraph((Screen_X / 2 - Gs.Easy_X) / 2, Gp.CentrJacket_Y + 600, Graph.Easy, TRUE);
		if (Global.SelectCounter <= 15){
			DrawGraph((Screen_X - Gs.Normal_X) / 2, Gp.CentrJacket_Y + 600, Graph.Normal, TRUE);
		}
		DrawGraph((Screen_X + Screen_X / 2 - Gs.Hard_X) / 2, Gp.CentrJacket_Y + 600, Graph.Hard, TRUE);
		break;
	case 2:
		DrawGraph((Screen_X / 2 - Gs.Easy_X) / 2, Gp.CentrJacket_Y + 600, Graph.Easy, TRUE);
		DrawGraph((Screen_X - Gs.Normal_X) / 2, Gp.CentrJacket_Y + 600, Graph.Normal, TRUE);
		if (Global.SelectCounter <= 15){
			DrawGraph((Screen_X + Screen_X / 2 - Gs.Hard_X) / 2, Gp.CentrJacket_Y + 600, Graph.Hard, TRUE);
		}
		break;
	}

	Global.SelectCounter++;
	
	if (Global.SelectCounter > 30){
		Global.SelectCounter = 0;
	}



	if (Global.Key[KEY_INPUT_V] == 1 || Global.Key[KEY_INPUT_F] == 1 ||
		Global.Key[KEY_INPUT_R] == 1 || Global.Key[KEY_INPUT_4] == 1){
		if (Global.TargetDiff > 0)
		{
			PlaySoundMem(Sound.Push, DX_PLAYTYPE_BACK);
			Global.TargetDiff--;
		}
	}
	if (Global.Key[KEY_INPUT_N] == 1 || Global.Key[KEY_INPUT_J] == 1 ||
		Global.Key[KEY_INPUT_I] == 1 || Global.Key[KEY_INPUT_9] == 1){
		if (Global.TargetDiff < 2)
		{
			PlaySoundMem(Sound.Push, DX_PLAYTYPE_BACK);
			Global.TargetDiff++;
		}
	}

	
	if (Global.Key[KEY_INPUT_F1] == 1 || Global.Key[KEY_INPUT_B] == 1){
		StopSoundMem(Music[Global.TargetMusic].MusicData);
		PlaySoundMem(Sound.Push, DX_PLAYTYPE_BACK);
		Flag.Select = 0;
		Flag.Game = 1;
		Global.SelectCounter = 0;
//		Global.TargetDiff = 1;
		
		switch (Global.TargetDiff)
		{
		case 0:
			ChartRead(Music[Global.TargetMusic].MusicName, 'E');
			break;
		case 1:
			ChartRead(Music[Global.TargetMusic].MusicName, 'N');
			break;
		case 2:
			ChartRead(Music[Global.TargetMusic].MusicName, 'H');
			break;
		}

	}
}
Beispiel #28
0
int CItem::DrawItem(void)
{
	int num=0;
	if(max<=0)
	{
		return 0;
	}
	for(int i=0;i<max;i++)
	{
		DrawGraph( item[i].x, item[i].y, item[i].Glaphic, true) ;

		//ここから行動パターンによる計算
		switch(item[i].pattern)
		{
		case 1:
			item[i].x-=item[i].spead;
			break;
		case 2:
			item[i].y+=item[i].spead;
			break;
		case 3:
			item[i].x+=item[i].spead;
			item[i].y+=item[i].spead;
			break;
		case 4:
			item[i].x-=item[i].spead;
			item[i].y+=item[i].spead;
			break;
		case 5:
			item[i].x-=item[i].spead;
			item[i].y+=sin(((item[i].y/480)*1800)* PI / 180)*item[i].spead;
			
			break;
		default:
			item[i].x-=item[i].spead;
			item[i].y+=item[i].spead;
			break;
		}
				//ここからあたり判定
		if((body->enemy_x>item[i].x&&body->enemy_x<(item[i].x+item[i].g_w))||((body->enemy_x+body->enemy_w)>item[i].x&&(body->enemy_x+body->enemy_w)<(item[i].x+item[i].g_w)))
		{
			if(debug_mode)DrawString( 250 , 300 , "XOK!" , GetColor( 255 , 255 , 255 )  );
			if((body->enemy_y<item[i].y&&(body->enemy_y+body->enemy_h)>item[i].y)||(body->enemy_y<(item[i].y+item[i].g_h)&&(body->enemy_y+body->enemy_h)>(item[i].y+item[i].g_h)))
			{
				StopSoundMem(   body->soud_se[5]) ;
				PlaySoundMem(  body->soud_se[5] , DX_PLAYTYPE_BACK ) ;
				if(debug_mode)DrawString( 250 , 300 , "アイテム取得" , GetColor( 255 , 255 , 255 )  );
				//アイテムに当たった
				switch(item[i].kouka)
				{
				case 1:
					body->enemy_hp+=30;
					if(body->enemy_hp>100)body->enemy_hp=100;
					break;
				case 2:
					body->enemy_bomb+=0.1;
					break;
				case 3:
					if((int)body->enemy_level<=define_maxlevel)
					body->enemy_level+=0.1;

					num=body->enemy_level/0.1;
					num%=10;
					if(num==0)PlaySoundMem(  body->soud_se[2] , DX_PLAYTYPE_BACK ) ;
					if((int)body->enemy_level>define_maxlevel)
						body->enemy_level=define_maxlevel;
					break;
				case 4:
					body->score+=Item_Ten;
					break;
				case 5:
					if(body->enemy_machi<6)
					body->enemy_machi++;

						break;
				}
				DeleteAt_Item(i);
				
				

			}
		}
		else if(item[i].x>640||item[i].x<0||item[i].y>480||item[i].y<0)
		{
			DeleteAt_Item(i);
			

		}
	}
	return 0;
}
Beispiel #29
0
//自機の当たり判定
void jiki_hantei()
{
#ifdef _DEBUG
	
	DrawBox(jiki_x+8,jiki_y+20,jiki_x+25,jiki_y+33,GetColor(255,255,255),true);
#endif

	for(int i = 0;i<ball_kazu;i++)
	{
		if(ball_pos_x[i]-16 <jiki_x+25 &&
			ball_pos_y[i]-16 < jiki_y+33 &&
			jiki_x+8 < ball_pos_x[i]+16 &&
			jiki_y+20 < ball_pos_y[i]+16)
		{
			shotflag = false;
		}
		else
		{
			count++;
			if(count == ball_kazu)
			{
				shotflag = true;
			}
		}
		if(ball_pos_x[i]-15 <jiki_x+27 &&
			ball_pos_y[i]-15 < jiki_y+33 &&
			jiki_x+6 < ball_pos_x[i]+15 &&
			jiki_y+6 < ball_pos_y[i]+15 ||
			(CheckHitKey(KEY_INPUT_ESCAPE)))
		{

			if(((change_jikiflag == false && change_ballflag[i] == false) || 
				(change_jikiflag == true && change_ballflag[i] == true) || (shot_missflag[i] == true && c78_flag == true)) &&
				change_ballflag2[i] == false && touch_flag[i] == false &&
				ball_pos_x[i]-10 <jiki_x+25 &&
				ball_pos_y[i]-10 < jiki_y+33 &&
				jiki_x+8 < ball_pos_x[i]+10 &&
				jiki_y+20 < ball_pos_y[i]+10 ||
				(CheckHitKey(KEY_INPUT_ESCAPE) &&
				game_endflag == false))
			{
				//げーむおーばーになる
				DrawGraph(jiki_x,jiki_y,g_out,true);
				PlaySoundMem(se_down,DX_PLAYTYPE_NORMAL);
				StopSoundMem(bgm[melo_s]);
				StopSoundMem(se_chance);
				game_endflag = true;
			}
			if(((change_jikiflag == false && change_ballflag[i] == true) ||
				(change_jikiflag == true && change_ballflag[i] == false))&& 
				change_ballflag2[i] == false && touch_flag[i] == false /* && shot_missflag[i] == false */ &&
				(CheckHitKey(KEY_INPUT_ESCAPE) == 0))
			{
				//反射する

//				if(abs(ball_pos_x[i]-jiki_x) >= abs(ball_pos_y[i]-jiki_y))
//				{
					if(jiki_x+16 > ball_pos_x[i])
					{
						vecter[i].x = -1;
						jiki_x += 3;
					}
					else
					{
						vecter[i].x = 1;
						jiki_x -= 3;
					}
//				}
//				if(abs(ball_pos_x[i]-jiki_x) <= abs(ball_pos_y[i]-jiki_y))
//				{
						vecter[i].y = -1;
						jiki_y +=4;
//				}
				wait_move = true;
				touch_flag[i] = true;
				change_ballflag2[i] = true;
				if(change_jikiflag == false)
				{
					score += (ball_kazu - ball_kazu_b+level)*100;
				}
				else
				{
					score += (ball_kazu_b+level)*100;
					
				}
				levelcount += 30;
				if(c78_flag == false){ combo++; }
			}
			timescore = 0;
			timescore2 = 0;

		}
		else
		{
			if(change_ballflag2[i] == true)
			{
				change_ballflag[i] = !change_ballflag[i];
				PlaySoundMem(se_hansya,DX_PLAYTYPE_BACK);
				change_ballflag2[i] = false;
			}
			count++;
			if(count == ball_kazu)
			{
				timescore++;
				if(timescore >= 1200-level*60)
				{
					timescore2++;
					if(timescore2 == 12)
					{
						score += level;
						timescore2 = 0;
					}
				}
				shotflag = true;
			}

			touch_flag[i] = false;
		}
	}
	count = 0;
}