media
(sf::Sprite
) 및 mediaTexture
(sf::Texture
)을 저장하는 DBObject가 있습니다. 이 DBObjects가 std::vector
에 저장됩니다SFML의 흰색 사각형이지만 텍스처가 잘로드됩니다.
void DBObject::loadMedia() {
myStream mediaStream(mediaPath);
mediaTexture.loadFromStream(mediaStream);
media.setTexture(mediaTexture);
mediaInit = true;
}
: 이것은 내 DBObject::loadMedia()
기능입니다.
디스플레이에 스프라이트를 그리려고 할 때, 완전히 흰색이며 분명히 범위를 벗어나는 텍스처에서 나온 것입니다. 하지만 DBObject의 텍스처를 정의하므로 객체의 수명이 있어야합니다 ... 맞습니까?
그러나 main() 함수에서 NEW 스프라이트를 만들고 newSprite.setTexture(DBObj.mediaTexture)
을 만들면 잘 표시되므로 텍스처 자체가 잘로드되지만 스프라이트에 뭔가가 일어나고 있습니다.
그래서 변경하려면 어떻게해야합니까? 계속해서 텍스처로 스프라이트를 계속 업데이트 하시겠습니까? – TheAbelo2
아니요, 복사 할 때 사용자 지정 복사본 생성자를 사용합니다. – Hiura
감사합니다. 사용자 지정 복사본을 추가했는데 이제는 정상적으로 작동합니다. :) – TheAbelo2