c++でのゲームプログラミングをしたときのお話 札幌c++勉強会 #4...

Download C++でのゲームプログラミングをしたときのお話 札幌C++勉強会 #4 〜スタートゲームプログラミング〜

If you can't read please download the document

Upload: -

Post on 25-Jun-2015

4.078 views

Category:

Documents


8 download

DESCRIPTION

札幌C++勉強会でゲームプログラミングがおだいになったときのスライドです

TRANSCRIPT

  • 1. C++C++ #4 @sakuriver

2. (@sakuriver) PHP Kawaz(gccsap) C++ 23 3. C++ 4. C++Main3 5. D Kawaz 100 6. VisualStudio C++ 2008 + Dxlib(STL)Dxlib4 XNADxlib 7. DxlibWindowsAPIDirectXD 8. BGM 9. 10. dxlib 01 2 3 4 5 6 7 11. void Animation::Draw(int apid,Positiondata position_){if(aplist_.at(apid).graphic_list_.size() > 1){int curpat = GameLoop::GetAnimationCount()/ aplist_.at(apid).animation_gap_ % aplist_.at(apid).graphic_list_.size();DrawGraph(position_.x_,position_.y_,aplist_.at(apid).graphic_list_.at(curpat),true);}else{DrawGraph(position_.x_,position_.y_,aplist_.at(apid).graphic_list_.at(0),true);}} 12. GameLoop::GetAnimationCount() 13. GameLoop int WINAPI WinMain( HINSTANCE hInstance, HINSTANCEhPrevInstance,LPSTR lpCmdLine, int nCmdShow ){GameLoop *main = new GameLoop(); // GameLoop Classmain->Init();// Initializemain->doMainLoop();// Main Loopdelete main;// Game Main Exitreturn 0;// Program Exit} 14. GameLoop void GameLoop::Init(){ChangeWindowMode(TRUE);SetMainWindowText("og?ANV?? for Kawaz");~Effect::LoadFiles();SoundBox::Set_Sound(Sound_Load("Soundbgmbattle_kawaz_select_intro_draft.wav"));SoundBox::Set_Sound(Sound_Load("Soundbgmbattle_kawaz_select_loop_draft.wav"));SoundBox::Set_Sound(Sound_Load("Soundbgmbattle_kawaz_title-theme-of-kawaz-tan.wav"));ISceneManager::Scene_Change(new TitleScene());ISceneManager::Scene_Init();} 15. GameLoop void GameLoop::doMainLoop(){while(ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0){ClsDrawScreen();ISceneManager::Scene_Execute();ScreenFlip();FpsLoop();}} 16. IsceneManager 17. ISceneManagerclass ISceneManager{private:ISceneManager(){};~ISceneManager();static IScene *pointer_scene;static ISceneManager *pointer_manager;public:static void Scene_Init();static void Scene_Execute();static void Scene_Change(IScene* work_scene);}; 18. IsceneManager void ISceneManager::Scene_Execute(){pointer_manager->pointer_scene->Update();pointer_manager->pointer_scene->Draw();} 19. 20. 21. class SoundBox{private:static vector sound_list_;static int bgm_number_;static int bgm_flag_;static int se_flag_;Public:~static int Set_Sound(int sound_handle_);static int Get_Sound_Number(){ return sound_list_.size()-1;}static int Get_Bgm_Flag(){ return bgm_flag_;}static int Get_Se_Flag(){ return se_flag_;}static void Play(int sound_num_);static void Stop(int sound_num_);static void Stop_Bgm();static void Play_Bgm_Loop(int sound_num_);static void Play_Bgm_Back(int sound_num_);static void Set_Bgm_Flag(int work_bgm_){ bgm_flag_=work_bgm_;}static void Set_Se_Flag(int work_se_){ se_flag_ = work_se_;} 22. (Vector)BGMSEDXLIB 23. void BattleScene::Bgm_Check(){if(SoundBox::Sound_Check() == 0){bgm_count_++;if(bgm_count_ >= 3){bgm_count_ = 0;}SoundBox::Play_Bgm_Back(battle_bgm_pattern_[bgm_count_]);}} 24. 25. C++ 26. Kawaz URLhttp://www.kawaz.org/ 27. 28. 29.