本文整理汇总了C++中Timer::GetLoops方法的典型用法代码示例。如果您正苦于以下问题:C++ Timer::GetLoops方法的具体用法?C++ Timer::GetLoops怎么用?C++ Timer::GetLoops使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Timer
的用法示例。
在下文中一共展示了Timer::GetLoops方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: starfield
Level::Level( int which ) {
Starfield starfield( 350 );
Hud hud;
Timer *timer = Timer::Instance();
Video *video = Video::Instance();
SpriteList *spriteList = SpriteList::Instance();
Ship *player = new Ship(); // the player sprite
bool quit = false;
SDL_Event event;
camera = Camera::Instance();
camera->Follow( player );
player->UseAI( false );
player->IsPlayer( true );
player->SetThrust( 5. );
// add player
spriteList->Add( player );
Ship *test = new Ship( 15, 15 );
spriteList->Add( test );
if( SDL_Init( SDL_INIT_JOYSTICK ) != 0 )
cout << "massive joystick error" << endl; // move to an input class
timer->Reset();
hud.Message( HUD_MSG_COMMAND, "Good morning, pilot." );
while( !quit ) {
// erase
video->Blank();
// update
// get user input
while( SDL_PollEvent( &event ) ) {
switch( event.type ) {
case SDL_QUIT:
quit = true;
break;
case SDL_JOYAXISMOTION:
cout << "joystick motion!" << endl;
if(event.jaxis.which == 0)
player->Turn( (float)-20 * 0.15f );
break;
case SDL_KEYDOWN:
switch( event.key.keysym.sym ) {
case SDLK_ESCAPE:
quit = true;
break;
case SDLK_w:
player->ThrottleUp();
break;
case SDLK_s:
player->ThrottleDown();
break;
default:
break;
}
break;
case SDL_MOUSEMOTION:
if(( event.motion.xrel ) && ( event.motion.xrel != 160 )) {
if( abs(event.motion.xrel) > 20 )
if(event.motion.xrel < 0)
player->Turn( (float)-20 * 0.15f );
else
player->Turn( (float)20 * 0.15f );
else
player->Turn( (float)event.motion.xrel * 0.15f );
}
break;
case SDL_MOUSEBUTTONDOWN:
if( event.button.button == 1) player->Fire();
if( event.button.button == 4) player->ThrottleUp();
if( event.button.button == 5) player->ThrottleDown();
break;
default:
break;
}
}
for( int n = timer->GetLoops(); n ; --n ) {
// update various systems
camera->Update();
starfield.Update();
spriteList->Update();
hud.Update();
}
// draw
starfield.Draw();
spriteList->Draw();
hud.Draw();
video->Update();
//.........这里部分代码省略.........