타일 엔진 제작에 관한 약간 오래된 튜토리얼을 따르려고합니다.텍스처가 화면에 그려지지 않습니다.
문제는 화면에 그리려는 텍스처가 나타나지 않는다는 것입니다. 방금 검은 색 화면이 나타납니다.
나는 Engine.cpp의 대부분의 관련 부분 촬영했습니다 :
bool Engine::Init()
{
LoadTextures();
window = new sf::RenderWindow(sf::VideoMode(800,600,32), "RPG");
if(!window)
return false;
return true;
}
void Engine::LoadTextures()
{
sf::Texture sprite;
sprite.loadFromFile("C:\\Users\\Vipar\\Pictures\\sprite1.png");
textureManager.AddTexture(sprite);
testTile = new Tile(textureManager.GetTexture(0));
}
void Engine::RenderFrame()
{
window->clear();
testTile->Draw(0,0,window);
window->display();
}
void Engine::MainLoop()
{
//Loop until our window is closed
while(window->isOpen())
{
ProcessInput();
Update();
RenderFrame();
}
}
void Engine::Go()
{
if(!Init())
throw "Could not initialize Engine";
MainLoop();
}
을 그리고 여기있는 TextureManager.cpp
#include "TextureManager.h"
#include <vector>
#include <SFML\Graphics.hpp>
TextureManager::TextureManager()
{
}
TextureManager::~TextureManager()
{
}
void TextureManager::AddTexture(sf::Texture& texture)
{
textureList.push_back(texture);
}
sf::Texture& TextureManager::GetTexture(int index)
{
return textureList[index];
}
를 튜토리얼에서는 자체는 Image
유형이 사용되었지만이 있었다 no Draw()
Image
에 대한 방법이므로 대신 Texture
을 만들었습니다. Texture
이 화면에 왜 렌더링되지 않습니까?
void Engine::LoadTextures()
{
sf::Texture sprite;
sprite.loadFromFile("C:\\Users\\Vipar\\Pictures\\sprite1.png");
textureManager.AddTexture(sprite);
testTile = new Tile(textureManager.GetTexture(0));
}
로컬 sf::Texture
를 작성하고 TextureManager::AddTexture
에 있음을 통과 :
이 문제는 아직 해결되지 않았습니다. – OmniOwl