sf :: RenderWindow에서 상속
SFML은 실제로 클래스에서 상속하도록 권장합니다.
class GameWindow: public sf::RenderWindow{};
여기에서 도면 도면 요소에 대한 구성원 도면 함수를 작성합니다.
class GameWindow: public sf::RenderWindow{
public:
void draw(const Entity& entity);
};
이제 당신은 이것을 할 수 있습니다 :
GameWindow window;
Entity entity;
window.draw(entity);
엔터티가 sf :: Sprite에서 상속하도록하여 고유 한 스프라이트를 유지하려는 경우이 단계를 더 멀리 진행할 수도 있습니다.
class Entity: public sf::Sprite{};
지금 sf::RenderWindow
바로 엔티티을 그릴 수 있고, 기관은 지금과 같은 기능을 가지고 setTexture()
와 setColor()
. 엔터티는 스프라이트의 위치를 자체 위치로 사용할 수도 setPosition()
있으므로 엔터티와 스프라이트를 이동하는 기능 을 사용할 수 있습니다 .
결국 , 당신이 방금 가지고 있다면 꽤 좋습니다 :
window.draw(game);
다음은 몇 가지 간단한 구현 예입니다.
class GameWindow: public sf::RenderWindow{
sf::Sprite entitySprite; //assuming your Entities don't need unique sprites.
public:
void draw(const Entity& entity){
entitySprite.setPosition(entity.getPosition());
sf::RenderWindow::draw(entitySprite);
}
};
또는
class GameWindow: public sf::RenderWindow{
public:
void draw(const Entity& entity){
sf::RenderWindow::draw(entity.getSprite()); //assuming Entities hold their own sprite.
}
};