本文整理汇总了C++中Menu::Draw方法的典型用法代码示例。如果您正苦于以下问题:C++ Menu::Draw方法的具体用法?C++ Menu::Draw怎么用?C++ Menu::Draw使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Menu
的用法示例。
在下文中一共展示了Menu::Draw方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
if (e.cbutton.button == SDL_CONTROLLER_BUTTON_X) {
menu = false;
gameState = LOSE;
}
}
break;
case SDL_CONTROLLERAXISMOTION:
moveCursor(e.caxis);
break;
}
} // END POLL EVENT
// **** UPDATE
fire1.Update(deltaTime);
fire2.Update(deltaTime);
UpdateCursor(deltaTime);
// check for collision between cursor active state and buttons
startGameOver = SDL_HasIntersection(&activePos, &startN.posRect);
backstoryOver = SDL_HasIntersection(&activePos, &backstoryN.posRect);
instructionsOver = SDL_HasIntersection(&activePos, &instructionsN.posRect);
quitOver = SDL_HasIntersection(&activePos, &quitN.posRect);
// **** DRAW PROCESS ****
//Clear the SDL RenderTarget
SDL_RenderClear(renderer);
// Draw the main menu
MainMenu.Draw(renderer);
fire1.Draw(renderer);
fire2.Draw(renderer);
Barrels.Draw(renderer);
if (startGameOver) {
startN.Draw(renderer, startN.posRect);
selected.Draw(renderer, startN.posRect);
}
else {
startN.Draw(renderer, startN.posRect);
}
if (backstoryOver) {
backstoryN.Draw(renderer, backstoryN.posRect);
selected.Draw(renderer, backstoryN.posRect);
}
else {
backstoryN.Draw(renderer, backstoryN.posRect);
}
if (instructionsOver) {
instructionsN.Draw(renderer, instructionsN.posRect);
selected.Draw(renderer, instructionsN.posRect);
}
else {
instructionsN.Draw(renderer, instructionsN.posRect);
}
if (quitOver) {
quitN.Draw(renderer, quitN.posRect);
selected.Draw(renderer, quitN.posRect);
}
else {
示例2: wmain
//.........这里部分代码省略.........
// Run the thread
//Player * p = (); // pointer to object
void * pv = &player; // pointer to void
Player * p2 = static_cast<Player *>(pv); // pointer to the same object
int data;
SDL_Thread* threadID = SDL_CreateThread(renderThreadFunction, "RenderThread", (void*)p2);
// THREADS \\
#pragma endregion
#pragma region SDL STUFF
bool quit = false;
float oldTime = SDL_GetTicks();
float delta = 0.f;
float newTime = 0.f;
SDL_Event e;
fpsTimer.start();
while (!quit)
{
while (SDL_PollEvent(&e) != 0)
{
InputManager::GetInstance()->UpdatePolledEvents(e);
}
if (e.button.button == SDL_SCANCODE_ESCAPE)
quit = true;
// THREADS \\
// THREADS \\
//controls gameState added in game menu feature
r.Begin();
switch (gameState)
{
case MENU:
//detect button click
if (e.type == SDL_MOUSEBUTTONDOWN)
{
//If the left mouse button was pressed
if (e.button.button == SDL_BUTTON_LEFT)
{
//Get the mouse offsets
int mouse_x = e.button.x;
int mouse_y = e.button.y;
if (playBtn.IsClicked(mouse_x, mouse_y))
{
gameState = PLAY;
}
else if (exitBtn.IsClicked(mouse_x, mouse_y))
{
quit = true;
}
}
}// End detect button click
background.Draw(r);
playBtn.Draw(r);
exitBtn.Draw(r);
break;
case PLAY:
newTime = SDL_GetTicks();
delta = newTime - oldTime;
oldTime = newTime;
en.Update(delta);
lvl.Draw(r);
en.Draw(r);
en1.Update(delta);
en1.Draw(r);
en.Draw(r);
player.Update(r, delta);
player.Draw(r);
//calculateFPS();
break;
}
InputManager::GetInstance()->UpdateState();
r.End();
}
//Remove timer in case the call back was not called
SDL_WaitThread(threadID, NULL);
return EXIT_SUCCESS;
}
示例3: wWinMain
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
{
g_hInstance = hInstance; // Store application handle
g_bWindowed = true; // Windowed mode or full-screen
// Init the window
InitWindow();
// Use this msg structure to catch window messages
MSG msg;
ZeroMemory(&msg, sizeof(msg));
//perform the count for frames per second
_int64 cntsPerSec = 0;
QueryPerformanceFrequency((LARGE_INTEGER*)&cntsPerSec);//perform function QueryPerformanceFrequency: returns a BOOL value; true if timer exist
float secsPerCnt = 1.0f / (float)cntsPerSec; //typecast the long int into a float
//create an int for prev time
_int64 prevTimeStamp = 0;
QueryPerformanceCounter((LARGE_INTEGER*)&prevTimeStamp);
//*************************************************************************
// Initialize DirectX/Game here (call the Init method of your framwork)
DXObj.Init(g_hWnd, g_hInstance, g_bWindowed);
MenuObj.Init(g_hWnd, g_hInstance, g_bWindowed);
//*************************************************************************
// Main Windows/Game Loop
while(msg.message != WM_QUIT)
{
if(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
//begin current time stamp counter
_int64 currTimeStamp = 0;
//receive counter performance
QueryPerformanceCounter((LARGE_INTEGER*)&currTimeStamp);
float dt = (currTimeStamp - prevTimeStamp)*secsPerCnt;
if(MenuObj.GetState() == 0) // Intro movie
{
DXObj.Update(dt);
if(DXObj.GetMovieState() == true)
{
MenuObj.SetState(1);
}
}
if(MenuObj.GetState() == 1)
{
//menu
MenuObj.Update();
MenuObj.Draw();
}
if(MenuObj.GetState() == 2)
{
//options
MenuObj.Update();
MenuObj.Draw();
}
if(MenuObj.GetState() == 3)
{
//game
if(!g_bIsEnabled)
{
PFObj.Init(g_hWnd, g_hInstance, g_bWindowed);
g_bIsEnabled = true;
}
PFObj.Update(dt);
PFObj.Draw();
if(PFObj.GetMenuBool())
{
MenuObj.SetState(1);
}
}
if(MenuObj.GetState() == 4)
{
//credits
MenuObj.Update();
MenuObj.Draw();
}
if(MenuObj.GetState() == 5)
{
//quit game
DXObj.Shutdown();
PostQuitMessage(0);
}
//*************************************************************************
// This is where you call your DirectXFramework/Game render/update calls
//MenuObj.Draw();
//PSObj.Draw();
//*************************************************************************
//Prepare for the next iteration: The current time
//stamp becomes the previous time stamp for the next iteration
prevTimeStamp = currTimeStamp;
}
//*************************************************************************
//Shutdown DirectXFramework/Game here
//.........这里部分代码省略.........
示例4: main
int main()
{
//gamestates
Menu* menu;
PlayGame* play;
Pause* pause;
Splash* splash;
//ScoreScreen* controls;
Controls* controls;
ScoreScreen* scoreScreen;
// Create the main window
//Screen dimension constants
sf::RenderWindow window(sf::VideoMode(SCREEN_WIDTH, SCREEN_HEIGHT, 32), "Space Wars!");
/*Initialsie the game modes*/
menu = new Menu(SCREEN_WIDTH, SCREEN_HEIGHT);
play = new PlayGame(SCREEN_WIDTH, SCREEN_HEIGHT);
pause = new Pause(SCREEN_WIDTH, SCREEN_HEIGHT);
splash = new Splash(SCREEN_WIDTH, SCREEN_HEIGHT);
controls = new Controls(SCREEN_WIDTH, SCREEN_HEIGHT);
scoreScreen = new ScoreScreen(SCREEN_WIDTH, SCREEN_HEIGHT);
//clock & frame rate
sf::Clock mclock;
sf::Time timeSinceLastUpdate;
window.setFramerateLimit(60);
// Start game loop
while (window.isOpen())
{
//get time between frames
timeSinceLastUpdate = mclock.getElapsedTime();
float time = timeSinceLastUpdate.asSeconds();//get update time
mclock.restart();
// Process events
sf::Event Event;
while (window.pollEvent(Event))
{
// Close window : exit
if (Event.type == sf::Event::Closed)
window.close();
// Escape key : exit
if ((Event.type == sf::Event::KeyPressed) && (Event.key.code == sf::Keyboard::Escape))
window.close();
}
//updates
switch (GameStateController::GetInstance()->getGameState())
{
case GameStateController::MENU:
menu->Update(time, window, Event);
break;
case GameStateController::PLAY:
play->Update(time, timeSinceLastUpdate);
break;
case GameStateController::CREDITS:
break;
case GameStateController::PAUSE:
break;
case GameStateController::SPLASH:
break;
case GameStateController::SCORESCREEN:
scoreScreen->Update();
break;
case GameStateController::CONTROLS:
controls->Update(time, window, Event);
break;
}//end switch
//prepare frame
window.clear(sf::Color::White);
//draw
switch (GameStateController::GetInstance()->getGameState())
{
case GameStateController::MENU:
menu->Draw(window);
break;
case GameStateController::PLAY:
play->Draw(window);
break;
case GameStateController::CREDITS:
break;
case GameStateController::PAUSE:
break;
case GameStateController::SPLASH:
break;
case GameStateController::SCORESCREEN:
scoreScreen->Draw(window);
break;
case GameStateController::CONTROLS:
controls->Draw(window);
break;
}//end switch
//.........这里部分代码省略.........
示例5: main
//.........这里部分代码省略.........
//Flock flock;
//vector<sf::CircleShape> shapes;
//for (int i = 0; i < 25; i++) //Number of boids is hardcoded for testing pusposes.
//{
// //Boid b(rand() % window_width, rand() % window_height); //Starts the boid with a random position in the window.
// Boid b((window_width * 3) / 2, (window_height * 3) / 2 -150); //Starts all boids in the center of the screen
// sf::CircleShape shape(boidsSize, 3); //Shape with a radius of 10 and 3 points (Making it a triangle)
// //Changing the Visual Properties of the shape
// //shape.setPosition(b.location.x, b.location.y); //Sets position of shape to random location that boid was set to.
// shape.setPosition(window_width, window_height); //Testing purposes, starts all shapes in the center of screen.
// shape.setOutlineColor(sf::Color(0, 255, 0));
// shape.setFillColor(sf::Color::Green);
// shape.setOutlineColor(sf::Color::White);
// shape.setOutlineThickness(1);
// shape.setRadius(boidsSize);
// //Adding the boid to the flock and adding the shapes to the vector<sf::CircleShape>
// flock.addBoid(b);
// shapes.push_back(shape);
//
//}
menu = new Menu(window_width, window_height);
play = new Play(window_width, window_height);
////create a circle
//sf::CircleShape circle(50);
//
//sf::CircleShape circle2(100);
sf::Time time;
sf::Clock m_clock;
// Start game loop
while (window.isOpen())
{
// Process events
sf::Event Event;
while (window.pollEvent(Event))
{
// Close window : exit
if (Event.type == sf::Event::Closed)
window.close();
}
time = m_clock.getElapsedTime();
float t = time.asSeconds();
m_clock.restart();
//updates
switch (StateController::GetInstance()->getState())
{
case StateController::MENU:
menu->Update(t);
break;
case StateController::PLAY:
play->Update(t, window);
break;
case StateController::CREDITS:
break;
case StateController::PAUSE:
break;
case StateController::SPLASH:
break;
case StateController::SCORESCREEN:
break;
}//end switch
window.clear();
//draw
switch (StateController::GetInstance()->getState())
{
case StateController::MENU:
menu->Draw(window);
break;
case StateController::PLAY:
play->Draw(window);
break;
case StateController::CREDITS:
break;
case StateController::PAUSE:
break;
case StateController::SPLASH:
break;
case StateController::SCORESCREEN:
break;
}//end switch
window.display(); //>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>DRAW WINDOW
} //loop back for next frame
return EXIT_SUCCESS;
}
示例6: main
int main(int argc, const char* argv[])
{
al_init();
al_init_font_addon();
al_init_ttf_addon();
al_init_image_addon();
al_init_primitives_addon();
ALLEGRO_DISPLAY *display;
al_set_new_display_flags(ALLEGRO_WINDOWED);
display = al_create_display(800, 600);
al_install_keyboard();
al_install_mouse();
ALLEGRO_EVENT_QUEUE *event_queue = al_create_event_queue();
al_register_event_source(event_queue, (ALLEGRO_EVENT_SOURCE *)display);
al_register_event_source(event_queue, al_get_keyboard_event_source());
al_register_event_source(event_queue, al_get_mouse_event_source());
ALLEGRO_FONT* font = al_load_ttf_font("data/times.ttf", 12, 0);
Vector2 camera(-400, -300);
Platforms platforms;
Bitmaps bitmaps;
Sprites sprites;
File* file = new File(font);
file->platforms = &platforms;
file->bitmaps = &bitmaps;
file->sprites = &sprites;
Menu menu;
menu.Add_entry(new Create_platform(platforms, camera, font));
menu.Add_entry(new Edit_platform(platforms, camera, font));
menu.Add_entry(file);
menu.Add_entry(new Create_sprite(bitmaps, sprites, camera, font));
menu.Add_entry(new Edit_sprite(sprites, camera, font));
if(argc==2)
file->Load(argv[1]);
while(1)
{
ALLEGRO_EVENT event;
if (al_get_next_event(event_queue, &event))
{
if (ALLEGRO_EVENT_DISPLAY_CLOSE == event.type ||
ALLEGRO_EVENT_KEY_DOWN == event.type &&
ALLEGRO_KEY_ESCAPE == event.keyboard.keycode)
{
break;
}
if(ALLEGRO_EVENT_MOUSE_AXES)
{
ALLEGRO_MOUSE_STATE mstate;
al_get_mouse_state(&mstate);
if(al_mouse_button_down(&mstate, 3))
{
camera.x -= event.mouse.dx;
camera.y -= event.mouse.dy;
}
}
menu.Event(event);
}
for(Sprites::iterator i = sprites.begin(); i != sprites.end(); ++i)
{
(*i)->Draw(camera);
}
for(Platforms::iterator i = platforms.begin(); i != platforms.end(); ++i)
{
(*i)->Draw(camera, al_map_rgb_f(0, 1, 0));
}
al_draw_line(0, -camera.y, 800, -camera.y, al_map_rgba_f(0, 1, 0, 0.5), 0);
al_draw_line(-camera.x, 0, -camera.x, 600, al_map_rgba_f(0, 0, 1, 0.5), 0);
menu.Draw();
al_flip_display();
al_clear_to_color(al_map_rgb(0, 0, 0));
al_rest(0.001);
}
al_destroy_event_queue(event_queue);
al_destroy_display(display);
}
示例7: 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++)
//.........这里部分代码省略.........