当前位置: 首页>>代码示例>>C++>>正文


C++ Play::Event方法代码示例

本文整理汇总了C++中Play::Event方法的典型用法代码示例。如果您正苦于以下问题:C++ Play::Event方法的具体用法?C++ Play::Event怎么用?C++ Play::Event使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Play的用法示例。


在下文中一共展示了Play::Event方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: MainLoop

// メインループ
void Game::MainLoop(void) {
    // 音楽再生
    Mix_PlayMusic(music_main,-1);
    // イベント
    SDL_Event event;
    double next_frame = SDL_GetTicks();
    double wait = 1000.0 / 60;
    // TOP画面
    Top top;
    // PLAY画面
    Play play;
    // ゲーム設定
    Config config;
    // パズルの区画やブロックを並べる
    PuzzleManager puzzle_manager;
    // ブロックの集合
    Block blocks[BLOCK_MAX] = {};
    // 区画の集合
    Section sections[SECTION_MAX] = {};
    // ストップウォッチ
    boost::timer t;
    
    for (;;) {
        // すべてのイベントを処理する
        while (SDL_PollEvent(&event)) {
            // 終了 (QUIT イベントが発生するか、ESC キーが押されたら)
            if ((event.type == SDL_QUIT) ||
                (event.type == SDL_KEYUP && event.key.keysym.sym == SDLK_ESCAPE))
                return;

            // TOP画面
            if (view_type == VIEW_TOP){
                // イベント処理
                int result = top.Event(&event, &config, &puzzle_manager, sections, blocks);
                if (result == ON){
                    view_type = VIEW_PLAY;
                }
            }
            
            // PLAY画面
            if (view_type == VIEW_PLAY){
                // イベント処理
                play.Event(&event, &config, &puzzle_manager, sections, blocks, &t);
            }
  
            // 全画面共通
            // キーボード操作
            if (event.type == SDL_KEYDOWN){
                // 右Shift
                if (event.key.keysym.sym == SDLK_RSHIFT){
                    // 設定初期化
                    config.Reset();
                    // ブロック未操作
                    play.SetFlagOperated(OFF);
                    // 得点リセット
                    puzzle_manager.ResetScore();
                    // 操作回数リセット
                    play.SetNumberOfOperations(OFF);
                    // クリア状況リセット
                    play.SetPlayResult(OFF);
                    // プレイ状況リセット
                    play.Reset();
                    // TOP画面へ遷移
                    view_type = VIEW_TOP;
                }
            }
        }
        
        // 1秒間に60回Updateされるようにする
        if (SDL_GetTicks() >= next_frame) {
            Update(&config, &puzzle_manager, sections, &top, &play, blocks);
            // 描画
            Draw(&config, sections, &top, &play, &puzzle_manager, blocks, &t);
            next_frame += wait;
            // CPU休ませる。どれくらいの数値がベスト…?
            SDL_Delay(3);
        }
    }
}
开发者ID:hujita,项目名称:kadai_01,代码行数:80,代码来源:game.cpp


注:本文中的Play::Event方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。