Microsoft Visual C++ Fehler den ich nicht verstehe: ... Kein Operator definiert ...



  • sorry bin noch ein sehr großer anfänger!
    Wie genau mach ich das?
    Bitte erklär es mir! 😃



  • Ich weiiß nicht ob es hilft aber die hpp datei sieht so aus

    #ifndef GAME_HPP
    #define GAME_HPP
    
    #include "Player.hpp"
    #include "Asteroid.hpp"
    
    class CGame
    {
      public:
        CGame ();
    
        void Init ();
        void Run  ();
        void Quit ();
    
      private:
        void ProcessEvents   ();
        void SpawnAsteroids  ();
        void RenderAsteroids ();
        void CheckCollisions  ();
    
        int lostast;
        CAsteroid *plostasteroid;
        CPlayer *m_pPlayer;             // Spieler-Instanz
        CSprite *m_pSpriteBackground;   // Sprite für den Hintergrund
        CSprite *m_pSpriteAsteroid;     // Sprite für die Asteroiden
        float    m_fAsteroidTimer;      // Zeitgeber für nächsten Asteroiden
        bool     m_bGameRun;            // Läuft das Spiel noch?
        list<CAsteroid> m_AsteroidList; // Liste der Asteroiden
    
    };
    

    #endif



  • such mal in allen .cpp/.h/.hpp Dateien nach einer Klasse die etwa mit CAsteroid beginnt.

    So sollte die Klasse ca. aussehen:

    class CAsteroid {
    //...
    };
    

    Du solltest lieber erstmal C++ lernen, bevor du dich mit der Spieleprogrammierung beschäftigst.
    Und wenn du schnell ein 2D-3D Spiel programmieren möchtest, dann schau dir mal Blitzbasic oder eine andere Version an.

    sorry bin noch ein sehr großer anfänger!

    ..



  • Laut dem Buch ist es der Richtige Moment um anzufangen ein Spiel zu programmieren! Kann sein das ich etwas übertrieben hab!
    Sag doch gleich dass du die Klasse willst 😉 :

    #ifndef ASTEROID_HPP
    #define ASTEROID_HPP
    
    #include "Sprite.hpp"
    
    class CAsteroid
    {
      public:
        void Init     (CSprite *pSpriteAsteroid, float fXPos, float fYPos);
        void Update   ();
        void Render   ();
        bool IsAlive  () {return m_bIsAlive;}
        void SetAlive (bool bIsAlive) {m_bIsAlive = bIsAlive;}
        SDL_Rect GetRect () {return m_Rect;}
    
      private:
        CSprite *m_pSpriteAsteroid; // Zeiger auf Asteroiden-Sprite
        float    m_fXPos;           // X-Position des Asteroiden
        float    m_fYPos;           // Y-Position des Asteroiden
        float    m_fAnimPhase;      // Akt. Animationsphase des Asteroiden
        bool     m_bIsAlive;        // "Lebt" der Asteroid noch?
        SDL_Rect m_Rect;            // Rect des Asteroiden
    	int		 lostasteroid;		// Verloren Asteroiden
    
    };
    
    #endif
    


  • Was soll denn die fehlerhafte Codezeile überhaupt für einen Sinn machen? Wenn ich das richtig sehe, dann ist "lostast" eine int Variable und "*plostasteroid" ist vom Typ CAsteroid. Wie soll das klappen und was soll das bringen?



  • KPC schrieb:

    Was soll denn die fehlerhafte Codezeile überhaupt für einen Sinn machen? Wenn ich das richtig sehe, dann ist "lostast" eine int Variable und "*plostasteroid" ist vom Typ CAsteroid. Wie soll das klappen und was soll das bringen?

    ja, es muss wahrscheinlich vom gleichen Typ sein.
    Da steht ja bereits in der Fehlermeldung, hab ich auch übersehen 🙄



  • was muss ich also machen 😕 🙂



  • greece57 schrieb:

    was muss ich also machen 😕 🙂

    Die Finger von Code lassen, den du nicht mal ansatzweise verstehst.

    Wie hier der richtige Code aussehen muss, hängt davon ab, was dieser Code tun soll. Und das kannst nur du wissen. Wir können dir jetzt einen Haufen Änderungen vorschlagen, die alle syntaktisch richtig wären und sich compilieren liessen. Aber ob der Code dann das tut, was du willst, ist doch sehr unwahrscheinlich.

    Also raus damit: Was soll das ganze?



  • Ärgert sich noch jemand darüber, dass zu diesem Code:

    CSprite *m_pSpriteAsteroid; // Zeiger auf Asteroiden-Sprite
        float    m_fXPos;           // X-Position des Asteroiden
        float    m_fYPos;           // Y-Position des Asteroiden
        float    m_fAnimPhase;      // Akt. Animationsphase des Asteroiden
        bool     m_bIsAlive;        // "Lebt" der Asteroid noch?
        SDL_Rect m_Rect;            // Rect des Asteroiden
    

    DAS dazugeschrieben wird:

    int		 lostasteroid;		// Verloren Asteroiden
    

    Ich könnte in die Tischkante beißen, wenn ich sowas sehe.



  • danke für deine Hilfe ich weiß jetzt was ich machen muss 😃 😃 😃
    Das Projekt hab ich zwar eh schon aufgegeben weil es einfach noch zu schwer für mich ist aber ich würd trotzdem gern erfahren was ich machen muss 🙂


Anmelden zum Antworten