2017-03-01 6 views
-3

나는 게임에서 일하고 있는데, 객체를 만들면 배열에 추가됩니다. 그리기가 더 쉽고 코디와 물건 변경이 가능합니다. 나는 그것을하는 방법을 모른다. 사전에sfml - 배열에 모든 객체 넣기

void CreateTile(string Texture, sf::Vector2f Pos) 
{ 
    sf::Texture texture; 
    texture.loadFromFile(Texture); 
    sf::Sprite Tile; 
    Tile.setTexture(texture); 
    Tile.setPosition(Pos); 
} 

감사합니다 : 그것은 여기에 도움이된다면 내 기능입니다!

+2

'std :: vector'를 검색하십시오. – nwp

+3

C++의 기본 지식을 습득하지 않은 이유는 무엇입니까? – DeiDei

+0

http://en.cppreference.com/w/cpp/container – domsson

답변

0

표준 라이브러리의 컨테이너를 사용할 수 있습니다. 가장 기본적인 라이브러리는 std::vector<>입니다. sf::Texture 개체는 불필요하게 복사 할 필요가없는 무거운 개체입니다. 필요한 경우 한 곳에서 보관해야하며 참조입니다.

std::vector<sf::Sprite*> sprites; 
std::vector<sf::Texture*> textures; 

void CreateTile(const std::string& file, const sf::Vector2f& position) 
{ 
    sf::Texture* texture = new sf::Texture(); 
    texture->loadFromFile(file); 

    textures->push_back(texture); 

    sf::Sprite* tile = new sf::Sprite(); 
    tile->setTexture(*texture); 
    tile->setPosition(position); 

    sprites->push_back(tile); 
} 

그리고이 같은

는해야 하지 사용 원시 포인터 위와 같이, ++ 현대 C가되는 것을 목표로하고있다. 스마트 포인터를 std::shared_ptr과 같이 사용하십시오.

경고 : 해결책은이 코드를 복사하여 어떻게 든 작동한다고해서 해결되지 않습니다. C++의 기초에 대한 좋은 책을 얻고 커버 할 커버를 읽으십시오. 바로 가기가 없습니다. 게임을 코딩하고 싶다면 언어를 배워야합니다.