Arbejder i øjeblikket på en class som ser således ud:
#ifndef GAME_ENTITY_H
#define GAME_ENTITY_H
#include <vector>
#include "boost/shared_ptr.hpp"
#include <SFML/Graphics.hpp>
enum EntityType {PLAYERSHIP, ENEMYSHIP, ASTEROID, ITEM, PROJECTILE, PARTICLE, BACKGROUND};
class GameEntity
{
protected:
typedef std::vector<boost::shared_ptr<GameEntity> > EntityList;
EntityList mList;
sf::Sprite mSprite;
EntityType mType;
static sf::Image mImage;
public:
GameEntity();
virtual ~GameEntity();
static bool Init(const std::string &pImageFile)
{
return mImage.LoadFromFile(pImageFile);
}
virtual EntityList Update() =0;
virtual bool Render(sf::RenderWindow &pApp) =0;
virtual bool IsDead() =0;
sf::Sprite GetSprite();
EntityType GetType();
};
sf::Image GameEntity::mImage;
#endif
Compileren giver ingen fejl ved ovenstående kode, men det gør linkeren derimod. Først bad den mig om at slå auto-import til (--enable-auto-import), og efter jeg har gjort det får jeg en mærkelig linker fejl der fortæller mig at "GameEntity::mImage" alleredde er defineret i filen "include/boost/exception/exception.hpp", hvilket den naturligvis ikke er (Ja har tjekket, selvom det lød meget mærkeligt.)
Nogen der ved hvor filmen knækker? Har ingen idé om hvad der foregår!
Bruger g++ 3.4.5 og Code:: Blocks 8.02
Mine Boost filer er 1.41 og bruger desuden SFML og TinyXML hvis det har nogen betydning. Platformen er Windows 7.
Indlæg senest redigeret d. 01.02.2010 00:29 af Bruger #15658