У меня возникли проблемы с реализацией этой функции.спрайт из сферы действия, потому что он локальный
//Engine.cpp
void Game::createPlayer(sf::Sprite &player)
{ ///Can't get this to work
sf::Texture player_texture;
if (!player_texture.loadFromFile("player.png"))
{
//Error Loading
}
player.setTexture(player_texture);
}
Я хочу, чтобы заменить «создает игрок в ничтожных играх :: бежать, но я понимаю, что Player_texture является локальным для Createplayer и что она не будет существовать, когда функция возвращается.
void Game::run()
{
sf::RenderWindow window(sf::VideoMode(SCREEN_X, SCREEN_Y), "Shogun Master");
srand((unsigned int)time(NULL));
//Creates Player [Makes into function]
sf::Texture player_texture;
player_texture.loadFromFile("sprites/player.png");
sf::Sprite player(player_texture);
//Creates Enemy [Make into function]
sf::Texture enemy_texture;
enemy_texture.loadFromFile("sprites/enemy.png");
sf::Sprite enemy[MAX_ENEMIES];
for (int x = 0; x < MAX_ENEMIES; x++)
{
enemy[x].setTexture(enemy_texture);
enemy[x].setPosition(rand_int(100, SCREEN_X - 100), rand_int(100, SCREEN_Y - 100)); //Spawning Point
}
//Sets Positions
player.setPosition(500, 300);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
check_closeWindows(event, window); //Closes Game if Executed
player_movement(event); //Moves Character
attack(event); //Character's attacks
}
border(player); //Border so player does not go off screen
for (int x = 0; x < total_enemies; x++)
border(enemy[x]);
movementUpdate(player, enemy); //Player & Enemy Movement Updates
collision(player, enemy[0]);
window.clear();
window.draw(player); //Draws Player
for (int x = 0; x < total_enemies; x++)
window.draw(enemy[x]); //Draws Enemy
window.display();
}
}
так, как бы я это реализовать, так что мой спрайт не возвращает белую коробку, потому что он вышел за рамки.
//Engine.h
void Game::createPlayer(sf::Sprite &player);
Возможный дубликат [Спрайт становится белым ящиком, когда я реализую функцию] (http://stackoverflow.com/questions/36852825/sprite-becomes-white-box-when-i-implement-function) – Hiura
Я имею в виду, вы задавая точно такой же вопрос, не принимая во внимание данный ответ в полном объеме ... – Hiura