本文整理汇总了C++中Hud::Draw方法的典型用法代码示例。如果您正苦于以下问题:C++ Hud::Draw方法的具体用法?C++ Hud::Draw怎么用?C++ Hud::Draw使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Hud
的用法示例。
在下文中一共展示了Hud::Draw方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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();
//.........这里部分代码省略.........
示例2: main
int main(int argc, char* args[])
{
enum {MENU, RUNNING, GAMEOVER, END};
int state = MENU;
int score = 0;
int deaths = 0;
//Holds all game objects vectors
vector<Net *> nets;
vector<Coral *> corals;
vector<School *> schools;
vector<SceneryFish *> sceneryFish;
vector<GobblerFish *> gobblerFish;
//back buffer || bit messy can clean up
System system("Fishy Game", false, 640, 480, 32, 60);
if (!system.Setup())
{
MessageBox(NULL, "SDL DID NOT INITIALISE PROPERLY", NULL, MB_OK);
return -1;
}
SDL_Surface* buffer = system.GetBuffer();
Timer timer;
Timer delta;
Camera camera(640, 480);
Level level;
Menu menu;
Hud hud;
School* school;
Net* net = NULL;
Coral* coral = NULL;
Mix_Music *music = NULL;
Fish fish("Sprites/Player_Spritesheet.bmp", 64, 64, 0, 0, 200, 200);
level.LoadLevel(fish, corals, nets, sceneryFish, gobblerFish);
music = Mix_LoadMUS( "Sounds/DST-Aethereal.wav" );
delta.Start();
while(!system.Done())
{
srand(time(NULL));
if(Mix_PlayingMusic () == 0)
{
Mix_PlayMusic(music, -1);
}
switch(state)
{
case MENU:
state = (menu.Update( delta, system.GetEvent()));
menu.Draw(buffer, camera);
break;
case RUNNING:
hud.Update(score, deaths );
//update
fish.Update( delta.GetTicks() );
for( int c = 0; c < corals.size(); c++)
{
corals[c]->Update(delta.GetTicks());
}
for( int i = 0; i < schools.size(); i++)
{
schools[i]->Update( delta.GetTicks(), fish, corals);
for(int j = 0; j < 3; j++)
{
if(schools[i]->GetFish(j)->GetEaten()
&& (!schools[i]->GetFish(j)->GetScored()))
{
deaths += 1;
schools[i]->GetFish(j)->SetScored(true);
}
if(schools[i]->GetFish(j)->GetSaved()
&& (!schools[i]->GetFish(j)->GetScored()))
{
score += 10;
schools[i]->GetFish(j)->SetScored(true);
}
}
}
for( int g = 0; g < gobblerFish.size(); g++)
{
gobblerFish[g]->Update(delta.GetTicks(), schools);
}
for( int i = 0; i < nets.size(); i++)
//.........这里部分代码省略.........