2013-03-22 2 views
1

это может звучать как очень простой вопрос, но у меня есть SFML 1.6, и я хочу контролировать свой RenderWindow от другой функции ... Я не очень хорошо разбираюсь в C++ или SFML ... :)Control RenderWindow от другой функции

//////////////////////////////////////////////////////////// 
// Headers 
//////////////////////////////////////////////////////////// 
#include <SFML/Window.hpp> 
#include <SFML/System.hpp> 
#include <SFML/Graphics.hpp> 
#include <iostream> 

using namespace std; 



int main() 
{ 

    // Create the main window 
    sf::RenderWindow App(sf::VideoMode(800, 600, 32), "Guessing Game"); 
    App.SetFramerateLimit(60); //Set FPS limit to 60 FPS 
    //Variables 
    bool atmainmenu = true; 
    //End Variables 

    // Start main loop 
    while (App.IsOpened()) 
    { 
     printmessage(atmainmenu); 
     // Process events 
     sf::Event Event; 
     while (App.GetEvent(Event)) 
     { 
      // Close window : exit 
      if (Event.Type == sf::Event::Closed) 
       App.Close(); 

      // Escape key : exit 
      if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::Escape)) 
       App.Close(); 
      if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::M)){ 

      } 
      if ((Event.Type == sf::Event::KeyPressed) && (Event.Key.Code == sf::Key::F)){ 

      } 
     } 
     // Display window on screen 
     App.Display(); 

    } 
    return EXIT_SUCCESS; 
} 

void printmessage(bool atmainmenu) 
{ 
    if(atmainmenu){ 
     //$$$$$$$################# HERE <---- 
    } 
} 

Это мой код, но я хочу контролировать «приложение» из atmainmenu. Что мне делать? благодаря

waco001

+0

Что касается примечания, я бы порекомендовал downloadi ng 2.0 RC и привыкнуть к нему. Вскоре выйдет новая версия, и некоторые из них вносят некоторые существенные изменения в структуру кода. –

ответ

1

Пройди свой RenderWindow в качестве параметра функции следующим образом:

void printmessage(bool thing, sf::RenderWindow& app) 
{ 
    app.doSomething(); 
} 

Не забудьте к окну в качестве ссылки &

Затем вызовите функцию в главном

printmessage(atmainmenu,app); 
Смежные вопросы