本文整理汇总了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);
}
}
}