Dungeon::Dungeon() { black = GetColor(0, 0, 0); yellow = GetColor(255, 255, 0); white = GetColor(255, 255, 255); blue = GetColor(0, 0, 255); SetTransColor(255, 255, 255); //白を透過色に yajirushi_h = LoadGraph("./dungeon/yajirushi.png"); SetTransColor(0, 0, 0); //一応戻す event_h = LoadGraph("./img/2bikkuri.bmp"); if (yajirushi_h == -1) { DrawString(0, 0, "Error!", GetColor(255, 0, 0)); WaitKey(); } SetUseZBuffer3D(TRUE); //深度ステンシルバッファ SetWriteZBuffer3D(TRUE); //。今のところ必要ない…と思いきや、一方通行の壁が荒ぶることへの対処ができる。一瞬暗くなるのは仕方ない? option = Option::GetInstance(); savedata = SaveData::GetInstance(); menu = Menu::GetInstance(); player = new Player(Prologue::RIAJU); LoadDungeon(3); }
void draw_main() { if(GetNowCount() - Csystem::start_time > 90000) return; SetUseZBuffer3D( TRUE ); SetWriteZBuffer3D( TRUE ); ChangeLightTypePoint( VGet(0,500,0), 1000, 2, 0, 0 ) ; draw_wall(VGet(-500,1000,-500),VGet(-500,1000,500),VGet(500,1000,500),VGet(500,1000,-500), VGet(-500,0,-500),VGet(-500,0,500),VGet(500,0,500),VGet(500,0,-500)); Pplayer->Preticle->draw(); if(Pplayer->target_type == Cplayer::FREE) { Pplayer->draw(); Pplayer->Pright_arm->right_draw(); Pplayer->Pleft_arm->left_draw(); } int player_hp = 254 * Pplayer->hit_point/1500; DrawRectGraph(80,14,0,0,player_hp,25,player_hp_g,TRUE,FALSE); switch (Csystem::game_mode) { case Csystem::SOLO: Pboss->draw(); DrawRectGraph(1195-(254 * Pboss->hit_point/4193),14,254 -(254 * Pboss->hit_point/4193),0,254,25,enemy_hp_g,TRUE,FALSE); break; case Csystem::ONLINE: Penemy->draw(); DrawRectGraph(1195-(254 * Penemy->hit_point/1500),14,254 -(254 * Penemy->hit_point/1500),0,254,25,enemy_hp_g,TRUE,FALSE); break; } for(int i = 0;i < 4;i++) { for(int k = 0;k < AMMO_MAX;k++) { Pplayer->Pleft_shot[i][k]->draw(); Pplayer->Pright_shot[i][k]->draw(); } } for(int k = 0;k < AMMO_MAX;k++) { Pboss->Pshot[k]->draw(); } DrawGraph(0,0,hp_bar_g,TRUE); Pcamera->draw(); #ifdef _DEBUG DrawFormatString(800,0,0x000fff,"%d",GetJoypadInputState( DX_INPUT_PAD1 )); DrawFormatString(0,20,0x000000,"X座標:%6f",Pplayer->pos.x); DrawFormatString(0,40,0x000000,"Y座標:%6f",Pplayer->pos.y); DrawFormatString(0,60,0x000000,"Z座標%6f",Pplayer->pos.z); DrawFormatString(460,0,0x000000,"敵撃破数%3d",Csystem::destroy_enemy); DrawFormatString(460,20,0x000000,"経過時間%2d秒",(GetNowCount() - Csystem::start_time)/1000); #endif }
void Game::Initialize() { // Zバッファを有効にする SetUseZBuffer3D(TRUE); // Zバッファへの書き込みを有効にする SetWriteZBuffer3D(TRUE); Debug::SetClear(true); m_sceneManager.Add<TestScene>(Scene::TestScene); m_sceneManager.Add<TestScene2>(Scene::TestScene2); m_sceneManager.Push(Scene::TestScene); }
void draw() { if (play_mode == false) { draw_Title(); if (keyboard.checkKey(KEY_INPUT_SPACE) == 1) { play_mode = true; } } else { if (over_flag == false) { SetUseZBuffer3D(TRUE); SetWriteZBuffer3D(TRUE); setCamera(); //draw_Planet(); draw_Dust(); draw_Player_shot(); draw_Enemy_shot(); draw_Player(); draw_Enemy(); draw_Effect(); draw_Player_HP(); if (clear_flag == true) { draw_GameClear(); if (keyboard.checkKey(KEY_INPUT_SPACE) == 1) { play_mode = true; initialization(); } } } else { draw_GameOver(); if (keyboard.checkKey(KEY_INPUT_SPACE) == 1) { play_mode = true; initialization(); } } } }
static void Use(const bool use) { SetUseZBuffer3D(use); SetWriteZBuffer3D(use); }