[Pillola] Sono inesperto, come faccio a creare il mio primo videogioco? - Pag 11
  • In diretta da GamesVillage.it
    • News
    • -
    • In Evidenza
    • -
    • Recensioni
    • -
    • RetroGaming
    • -
    • Anteprime
    • -
    • Video
    • -
    • Cinema

Pag 11 di 13 PrimoPrimo ... 8910111213 UltimoUltimo
Visualizzazione risultati da 151 a 165 di 184

Discussione: [Pillola] Sono inesperto, come faccio a creare il mio primo videogioco?

Cambio titolo
  1. #151
    Utente
    Registrato il
    02-06
    Località
    ...
    Messaggi
    4.972
    Non c'e niente di predefinito.
    Almeno è raro, e non in SFML.
    Ma è semplice implementare qualcosa del genere.

    Fai tipo:
    Codice:
    enum GameState
    {
        Play,
        Pause
    };
    E poi dentro il while che aggiorna fai:
    Codice:
    while (..)
    {
      // Gestisci eventi
    
      if (currentState == GameState::Play)
      {
        // Aggiorni il gioco
      }
      else if (currentState == GameState::Pause)
      {
        // Aggiorni i menu
        // Chiaramente se sei qui dentro il gioco non viene aggiornato e rimane fermo
      }
    }
    così ti basta settare la variabile currentState allo stato che vuoi, e aggiornare di conseguenza.

  2. #152
    TheEnigmist L'avatar di Tommy_2
    Registrato il
    04-05
    Località
    Italy
    Messaggi
    9.116
    Citazione CorralX Visualizza Messaggio
    Non c'e niente di predefinito.
    Almeno è raro, e non in SFML.
    Ma è semplice implementare qualcosa del genere.

    Fai tipo:
    Codice:
    enum GameState
    {
        Play,
        Pause
    };
    E poi dentro il while che aggiorna fai:
    Codice:
    while (..)
    {
      // Gestisci eventi
    
      if (currentState == GameState::Play)
      {
        // Aggiorni il gioco
      }
      else if (currentState == GameState::Pause)
      {
        // Aggiorni i menu
        // Chiaramente se sei qui dentro il gioco non viene aggiornato e rimane fermo
      }
    }
    così ti basta settare la variabile currentState allo stato che vuoi, e aggiornare di conseguenza.
    Quindi fare una cosa del genere?
    Codice:
    while (Game.IsOpened())
        {
    
        if (currentState == GameState::Play)
              {
                
            Game.SetView(camera);
            //Creazione Eventi
            sf::Event Event;
    
            //Eventi
            while (Game.PollEvent(Event))
            {
    
                [cut]
    
            }
                
            
                if (giocando)
                {
    
                    [cut]
                }    
    
                        
    
    
            //Movimenti
            //box.Move(0.1,0);
            
            cout <<"\rX:" << fixed << Sprite.GetPosition().x << "\tY:"<< Sprite.GetPosition().y;
            
            //Pulizia finestra
            Game.Clear();
    
            Game.Draw(background);
            Game.Draw(Sprite);
    
    
            Game.SetView(Game.GetDefaultView());
            Game.Draw(box);
    
    
            //Mostrare la finestra
            Game.Display();
            
    
          }
          else if (currentState == GameState::Pause)
              {
                //tutto il menù!!
              }
        }
    Però facendo così non c'è un problema quando ritorno al gioco? Non perdo tutte le posizioni e i dati di modifica avvenuti?

  3. #153
    Utente
    Registrato il
    02-06
    Località
    ...
    Messaggi
    4.972
    Devi iportare il controllo sugli eventi fuori

    Codice:
    sf::Event event;
    
    while (Game.IsOpened())
    {
      while (Game.PollEvent(event))
      {
        // gestisci evento
      }
    
      if (currentState == GameState::Play)
      {
       // sei in gioco
      }
      else if (currentState == GameState::Pause)
      {
        // Sei nel menu
      }
    }

  4. #154
    TheEnigmist L'avatar di Tommy_2
    Registrato il
    04-05
    Località
    Italy
    Messaggi
    9.116
    Citazione CorralX Visualizza Messaggio
    Devi iportare il controllo sugli eventi fuori

    Codice:
    sf::Event event;
    
    while (Game.IsOpened())
    {
      while (Game.PollEvent(event))
      {
        // gestisci evento
      }
    
      if (currentState == GameState::Play)
      {
       // sei in gioco
      }
      else if (currentState == GameState::Pause)
      {
        // Sei nel menu
      }
    }
    Ci studierò sopra... anche perché il codice che ho messo su per ora è solo pura confusione... quindi dovrei capire bene cosa mettere fuori e dentro xD
    Secondo me impazzisci se ti passo il codice sorgente completo

    EDIT: Ci sono riuscito sembrava più difficile in teoria, ma nella pratica è stato ultra semplice
    C'è solo una cosa che non capisco... come menù ho messo per ora un rettangolo color nero grande quanto la finestra. Gli ho dato questi paramentri di colore (0,0,0,127). Perché non mi si visualizza opaco?
    Ultima modifica di Tommy_2; 12-05-2011 alle 23:44:48

  5. #155
    Utente
    Registrato il
    02-06
    Località
    ...
    Messaggi
    4.972
    Credo perchè l'opacità è 127.
    E' come avere una opacità del 50%.
    Mettila a 255 e vedi se cambia qualcosa.
    altrimenti il problema è un'altro.
    Probabilmente con le view.
    Prova anche a mettere Game.SetView(Game.GetDefaultView());

  6. #156
    TheEnigmist L'avatar di Tommy_2
    Registrato il
    04-05
    Località
    Italy
    Messaggi
    9.116
    Citazione CorralX Visualizza Messaggio
    Credo perchè l'opacità è 127.
    E' come avere una opacità del 50%.
    Mettila a 255 e vedi se cambia qualcosa.
    altrimenti il problema è un'altro.
    Probabilmente con le view.
    Prova anche a mettere Game.SetView(Game.GetDefaultView());
    0= 100% 255= 0%
    Non cambia nulla mettendo Game.SetView(Game.GetDefaultView());
    E secondo me la questione è semplice. Sotto il box non c'è nulla, e quindi o metto l'alpha al 100% o allo 0% la situazione non cambia... devo provare a mettere un'immagine sotto e vedere gli effetti.
    Inoltre vorrei fare una cosa carina.
    Fare uno screenshot dell'ultimo frame priam di aprire il menu, salvarlo in memoria, usare il comando Image.LoadFromMemory () quel frame, e usarlo come sfondo del menù con esso sopra
    Però non esiste più il comando per lo screenshot :/

    EDIT: teoria confermata... l'apha funziona in base agli oggetti che ci sono al di sotto... se c'è qualcosa viene mostrato. È come se facesse una fusione con l'immagine sottostante... Non essendoci nulla l'alpha è 0%
    Ultima modifica di Tommy_2; 13-05-2011 alle 00:00:40

  7. #157
    Utente
    Registrato il
    02-06
    Località
    ...
    Messaggi
    4.972
    Citazione Tommy_2 Visualizza Messaggio
    0= 100% 255= 0%
    Non cambia nulla mettendo Game.SetView(Game.GetDefaultView());
    E secondo me la questione è semplice. Sotto il box non c'è nulla, e quindi o metto l'alpha al 100% o allo 0% la situazione non cambia... devo provare a mettere un'immagine sotto e vedere gli effetti.
    Inoltre vorrei fare una cosa carina.
    Fare uno screenshot dell'ultimo frame priam di aprire il menu, salvarlo in memoria, usare il comando Image.LoadFromMemory () quel frame, e usarlo come sfondo del menù con esso sopra
    Però non esiste più il comando per lo screenshot :/

    EDIT: teoria confermata... l'apha funziona in base agli oggetti che ci sono al di sotto... se c'è qualcosa viene mostrato. È come se facesse una fusione con l'immagine sottostante... Non essendoci nulla l'alpha è 0%
    Ah lol beh ovvio.
    L'alpha funziona tramite un'equazione di blending che mischia i 2 colori nelle percentuali indicate dall'alpha. Se sotto non c'e niente e come avere il 100%

  8. #158
    TheEnigmist L'avatar di Tommy_2
    Registrato il
    04-05
    Località
    Italy
    Messaggi
    9.116
    Per quanto riguarda lo screenshot? Come posso fare per catturare l'ultimo frame del gioco?

  9. #159
    Utente
    Registrato il
    02-06
    Località
    ...
    Messaggi
    4.972
    Ora lo screenshot fa parte della classe Image.
    Ovvero dici alla classe di creare una immagine a partire dalla renderwindow.

    sf::Image image;
    image.CopyScreen(Game);
    image.SaveToFile("immagine.jpg");

    Con questo nuovo sistema non ti serve salvarla.
    image.CopyScreen(Game) ti crea già una sf::Image che puoi direttamente disegnare.

  10. #160
    TheEnigmist L'avatar di Tommy_2
    Registrato il
    04-05
    Località
    Italy
    Messaggi
    9.116
    Citazione CorralX Visualizza Messaggio
    Ora lo screenshot fa parte della classe Image.
    Ovvero dici alla classe di creare una immagine a partire dalla renderwindow.

    sf::Image image;
    image.CopyScreen(Game);
    image.SaveToFile("immagine.jpg");

    Con questo nuovo sistema non ti serve salvarla.
    image.CopyScreen(Game) ti crea già una sf::Image che puoi direttamente disegnare.
    Ah ottimo... quindi posso usare questo senza nemmeno fare LoadFromMemory
    Una cosa ora mi sfugge dalla mente...
    Se io ho un int x=1; come faccio a stampare i bit più significativi uguali a 0?
    Praticamente quello che voglio fare è il classico sistema di screenshot numerato e ordinato del tipo 001 ... 013 ... 151 ... 999.

    EDIT:
    Codice:
    if (x < 10){
                cout << "00"<< x << endl;
            }
            else if (x >= 10 && x < 100){
                cout << "0"<< x << endl;
            }
                
            else  {
                cout << x << endl;
            }
    Per ora ho risolto così!
    Caso mai utilizzo qualche comando che mi catturi la data e l'orario per creare i nomi delle immagini!
    Ultima modifica di Tommy_2; 13-05-2011 alle 11:50:03

  11. #161
    Utente
    Registrato il
    02-06
    Località
    ...
    Messaggi
    4.972
    Per la questione numeri puoi usare sprintf (una printf che stampa dentro una string).
    http://www.cplusplus.com/reference/c...stdio/sprintf/

    char* string = new char[3];
    sprintf(string, "%03d", x);

    ora string è una stringa che contiene x formattato come una stringa di 3 caratteri, di cui quelli mancanti sono 0.
    % indica che quello che segue è una formattazione
    3 indica che vuoi formattare x con 3 caratteri anche se ne manca qualcuno
    0 indica che vuoi mettre degli 0 davanti alla parte formattata per riempire i caratteri che mancano
    d indica che vuoi un intero signed (uguale a i)

  12. #162
    TheEnigmist L'avatar di Tommy_2
    Registrato il
    04-05
    Località
    Italy
    Messaggi
    9.116
    Citazione CorralX Visualizza Messaggio
    Per la questione numeri puoi usare sprintf (una printf che stampa dentro una string).
    http://www.cplusplus.com/reference/c...stdio/sprintf/

    char* string = new char[3];
    sprintf(string, "%03d", x);

    ora string è una stringa che contiene x formattato come una stringa di 3 caratteri, di cui quelli mancanti sono 0.
    % indica che quello che segue è una formattazione
    3 indica che vuoi formattare x con 3 caratteri anche se ne manca qualcuno
    0 indica che vuoi mettre degli 0 davanti alla parte formattata per riempire i caratteri che mancano
    d indica che vuoi un intero signed (uguale a i)
    Ottimo. Meglio utilizzare questo sistema che quello che stavo progettando Ossia di prendere il local time e schiaffarlo come nome dell'immagine XD Ovviamente mi da errori perché TIPO.wDay non è una stringa
    Ultima modifica di Tommy_2; 13-05-2011 alle 20:49:29

  13. #163
    TheEnigmist L'avatar di Tommy_2
    Registrato il
    04-05
    Località
    Italy
    Messaggi
    9.116
    "CorralX scelgo te" [cit]
    stavo guardando un po' la wiki e ho trovato questo argomento molto interessante

    Però ora ho un problema... Non riesco a compilare il tutto xD
    Tralasciando gli errori di definizioni per il passaggio da 1.6 a 2.0, noto che comunque sbaglio qualcosa con gli header.
    Ti posto il codice che ho copiato e incollato in VS2010. Dimmi se sbaglio qualcosa
    Main:
    Spoiler:
    Codice PHP:
    #include <fstream>
    #include <iostream>
    #include <SFML/Graphics.hpp>
    #include "screens.h"

    int main()
    {
        
    std::vector(cScreen*) Screens;
        
    int screen 0;

        
    //Window creation
        
    sf::RenderWindow App(sf::VideoMode(64048032), "SFML Demo 3");

        
    //Mouse cursor no more visible
        
    App.ShowMouseCursor(false);

        
    //Screens preparations
        
    screen_0 s0;
        
    Screens.push_back (&s0);
        
    screen_1 s1;
        
    Screens.push_back (&s1);

        
    //Main loop
        
    while (screen >= 0)
        {
            
    screen Screens[screen]->Run(App);
        }

        return 
    EXIT_SUCCESS;
    }


    screens.h
    Spoiler:
    Codice PHP:
    #ifndef SCREENS_HPP_INCLUDED
    #define SCREENS_HPP_INCLUDED

    //Basic Screen Class
    #include "screen.h"

    //Including each screen of application
    #include "screen_0.h"
    #include "screen_1.h"

    #endif // SCREENS_HPP_INCLUDED 

    screen.h
    Spoiler:
    Codice PHP:
    class cScreen
    {
    public :
        
    virtual int Run (sf::RenderWindow &App) = 0;
    }; 


    screen_0.h
    Spoiler:
    Codice PHP:
    #include <iostream>
    #include "screen.h"

    class screen_0 : public Screen
    {
    private:
        
    int alpha_max;
        
    int alpha_div;
        
    bool playing;
    public:
        
    screen_0 (void);
        
    virtual int Run (sf::RenderWindow &App);
    };

    screen_0::screen_0 (void)
    {
        
    alpha_max 3*255;
        
    alpha_div 3;
        
    playing false;
    }

    int screen_0::Run (sf::RenderWindow &App)
    {
        
    sf::Event Event;
        
    bool Running true;
        
    sf::Image Image;
        
    sf::Sprite Sprite;
        
    int alpha 0;
        
    sf::Font Font;
        
    sf::String Menu1;
        
    sf::String Menu2;
        
    sf::String Menu3;
        
    int menu 0;

        if (!
    Image.LoadFromFile("presentation.png"))
        {
            
    std::cerr<<"Error loading presentation.png"<<std::endl;
            return (-
    1);
        }
        
    Sprite.SetImage(Image);
        
    Sprite.SetColor(sf::Color(255255255alpha));
        if (!
    Font.LoadFromFile("verdanab.ttf"))
        {
            
    std::cerr<<"Error loading verdanab.ttf"<<std::endl;
            return (-
    1);
        }
        
    Menu1.SetFont(Font);
        
    Menu1.SetSize(20);
        
    Menu1.SetText("Play");
        
    Menu1.SetX(280);
        
    Menu1.SetY(160);
        
    Menu2.SetFont(Font);
        
    Menu2.SetSize(20);
        
    Menu2.SetText("Exit");
        
    Menu2.SetX(280);
        
    Menu2.SetY(220);
        
    Menu3.SetFont(Font);
        
    Menu3.SetSize(20);
        
    Menu3.SetText("Continue");
        
    Menu3.SetX(280);
        
    Menu3.SetY(160);

        
    //Clearing screen
        
    App.SetBackgroundColor(sf::Color(0000));

        if (
    playing)
        {
            
    alpha alpha_max;
        }

        while (
    Running)
        {
            
    //Verifying events
            
    while (App.PollEvent(Event))
            {
                
    // Window closed
                
    if (Event.Type == sf::Event::Closed)
                {
                    return (-
    1);
                }
                
    //Key pressed
                
    if (Event.Type == sf::Event::KeyPressed)
                {
                    switch (
    Event.Key.Code)
                    {
                    case 
    sf::Key::Up:
                        
    menu 0;
                        break;
                    case 
    sf::Key::Down:
                        
    menu 1;
                        break;
                    case 
    sf::Key::Return:
                        if (
    menu==0)
                        {
                            
    //Let's get play !
                            
    playing true;
                            return (
    1);
                        }
                        else
                        {
                            
    //Let's get work...
                            
    return (-1);
                        }
                        break;
                    default :
                        break;
                    }
                }
            }
            
    //When getting at alpha_max, we stop modifying the sprite
            
    if (alpha<alpha_max)
            {
                
    alpha++;
            }
            
    Sprite.SetColor(sf::Color(255255255alpha/alpha_div));
            if (
    menu==0)
            {
                
    Menu1.SetColor(sf::Color(25500255));
                
    Menu2.SetColor(sf::Color(255255255255));
                
    Menu3.SetColor(sf::Color(25500255));
            }
            else
            {
                
    Menu1.SetColor(sf::Color(255255255255));
                
    Menu2.SetColor(sf::Color(25500255));
                
    Menu3.SetColor(sf::Color(255255255255));
            }

            
    //Drawing
            
    App.Draw(Sprite);
            if (
    alpha==alpha_max)
            {
                if (
    playing)
                {
                    
    App.Draw(Menu3);
                }
                else
                {
                    
    App.Draw(Menu1);
                }
                
    App.Draw(Menu2);
            }
            
    App.Display();
        }

        
    //Never reaching this point normally, but just in case, exit the application
        
    return (-1);


    screen_1.h
    Spoiler:
    Codice PHP:
    #include <iostream>
    #include "screen.h"

    class screen_1 : public Screen
    {
    private:
        
    int movement_step;
        
    int posx;
        
    int posy;
        
    sf::Sprite Sprite;
    public:
        
    screen_1 (void);
        
    virtual int Run (sf::RenderWindow &App);
    };

    screen_1::screen_1 (void)
    {
        
    movement_step 5;
        
    posx 320;
        
    posy 240;
        
    //Setting sprite
        
    Sprite.SetColor(sf::Color(255255255150));
        
    Sprite.SetSubRect(sf::IntRect(001010));
    }

    int screen_1::Run (sf::RenderWindow &App)
    {
        
    sf::Event Event;
        
    bool Running true;


        
    //Clearing screen
        
    App.SetBackgroundColor(sf::Color(0000));

        while (
    Running)
        {
            
    //Verifying events
            
    while (App.PollEvent(Event))
            {
                
    // Window closed
                
    if (Event.Type == sf::Event::Closed)
                {
                    return (-
    1);
                }
                
    //Key pressed
                
    if (Event.Type == sf::Event::KeyPressed)
                {
                    switch (
    Event.Key.Code)
                    {
                    case 
    sf::Key::Escape:
                        return (
    0);
                        break;
                    case 
    sf::Key::Up:
                        
    posy -= movement_step;
                        break;
                    case 
    sf::Key::Down:
                        
    posy += movement_step;
                        break;
                    case 
    sf::Key::Left:
                        
    posx -= movement_step;
                        break;
                    case 
    sf::Key::Right:
                        
    posx += movement_step;
                        break;
                    default:
                        break;
                    }
                }
            }

            
    //Updating
            
    if (posx>630)
                
    posx 630;
            if (
    posx<0)
                
    posx 0;
            if (
    posy>470)
                
    posy 470;
            if (
    posy<0)
                
    posy 0;
            
    Sprite.SetPosition(posxposy);

            
    //Drawing
            
    App.Draw(Sprite);
            
    App.Display();
        }

        
    //Never reaching this point normally, but just in case, exit the application
        
    return -1;



    Cosa c'è di sbaglaito che non me lo compila bene?

    EDIT:
    Questo è il log di errore compilazione
    Spoiler:
    Codice:
    >c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen.h(2): error C2011: 'cScreen': ridefinizione tipo 'class'
    1>          c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen.h(2): vedere la dichiarazione di 'cScreen'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(5): error C2504: 'Screen': classe base non definita
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(47): error C2039: 'SetFont': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(48): error C2039: 'SetSize': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(49): error C2039: 'SetText': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(50): error C2039: 'SetX': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(51): error C2039: 'SetY': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(52): error C2039: 'SetFont': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(53): error C2039: 'SetSize': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(54): error C2039: 'SetText': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(55): error C2039: 'SetX': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(56): error C2039: 'SetY': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(57): error C2039: 'SetFont': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(58): error C2039: 'SetSize': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(59): error C2039: 'SetText': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(60): error C2039: 'SetX': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(61): error C2039: 'SetY': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(64): error C2039: 'SetBackgroundColor': non è un membro di 'sf::RenderWindow'
    1>          c:\sfml 2.0\include\sfml\graphics\renderwindow.hpp(43): vedere la dichiarazione di 'sf::RenderWindow'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(118): error C2039: 'SetColor': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(119): error C2039: 'SetColor': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(120): error C2039: 'SetColor': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(124): error C2039: 'SetColor': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(125): error C2039: 'SetColor': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(126): error C2039: 'SetColor': non è un membro di 'sf::String'
    1>          c:\sfml 2.0\include\sfml\system\string.hpp(44): vedere la dichiarazione di 'sf::String'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(135): error C2664: 'void sf::RenderTarget::Draw(const sf::Drawable &)': impossibile convertire il parametro 1 da 'sf::String' a 'const sf::Drawable &'
    1>          Motivo: impossibile convertire da 'sf::String' a 'const sf::Drawable'
    1>          Nessun operatore di conversione definito dall'utente è disponibile o è impossibile chiamare l'operatore
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(139): error C2664: 'void sf::RenderTarget::Draw(const sf::Drawable &)': impossibile convertire il parametro 1 da 'sf::String' a 'const sf::Drawable &'
    1>          Motivo: impossibile convertire da 'sf::String' a 'const sf::Drawable'
    1>          Nessun operatore di conversione definito dall'utente è disponibile o è impossibile chiamare l'operatore
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(141): error C2664: 'void sf::RenderTarget::Draw(const sf::Drawable &)': impossibile convertire il parametro 1 da 'sf::String' a 'const sf::Drawable &'
    1>          Motivo: impossibile convertire da 'sf::String' a 'const sf::Drawable'
    1>          Nessun operatore di conversione definito dall'utente è disponibile o è impossibile chiamare l'operatore
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_1.h(5): error C2504: 'Screen': classe base non definita
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_1.h(33): error C2039: 'SetBackgroundColor': non è un membro di 'sf::RenderWindow'
    1>          c:\sfml 2.0\include\sfml\graphics\renderwindow.hpp(43): vedere la dichiarazione di 'sf::RenderWindow'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_1.h(38): error C2039: 'GetEvent': non è un membro di 'sf::RenderWindow'
    1>          c:\sfml 2.0\include\sfml\graphics\renderwindow.hpp(43): vedere la dichiarazione di 'sf::RenderWindow'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_1.h(38): fatal error C1903: impossibile recuperare l'errore o gli errori precedenti. Interruzione della compilazione
    1>
    1>Compilazione NON RIUSCITA.
    Ultima modifica di Tommy_2; 14-05-2011 alle 11:28:59

  14. #164
    Utente
    Registrato il
    02-06
    Località
    ...
    Messaggi
    4.972
    Uhm...
    Innanzitutto
    std::vector(cScreen*) Screens;
    dovrebbe essere
    std::vector<cScreen*> Screens;
    nel main.

    poi
    class screen_0 : public Screen
    dovrebbe essere
    class screen_0 : public cScreen
    e lo stesso vale per la classe screen_1

  15. #165
    TheEnigmist L'avatar di Tommy_2
    Registrato il
    04-05
    Località
    Italy
    Messaggi
    9.116
    Citazione CorralX Visualizza Messaggio
    Uhm...
    Innanzitutto
    std::vector(cScreen*) Screens;
    dovrebbe essere
    std::vector<cScreen*> Screens;
    nel main.

    poi
    class screen_0 : public Screen
    dovrebbe essere
    class screen_0 : public cScreen
    e lo stesso vale per la classe screen_1
    Giustissimo... come ho fatto a non pensarci? quanto so nabbo
    Compilando ci sono oltre alla miriade di comandi da aggiustare alla 2.0 escono fuori questi:
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen.h(2): error C2011: 'cScreen': ridefinizione tipo 'class'
    1> c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen.h(2): vedere la dichiarazione di 'cScreen'
    1>c:\users\theenigmist\documents\visual studio 2010\projects\finestre\finestre\screen_0.h(5): error C2504: 'cScreen': classe base non definita

    Noto però che questo toturial è fatto un po' male

Pag 11 di 13 PrimoPrimo ... 8910111213 UltimoUltimo

Regole di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •