When closing the window, I get an error code: -1073741819. What is going on here and how do I fix it? (Win7, CodeBlocks12.11, SFML2.0)
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <string>
#include <iostream>
int main()
{
enum Direction { Down, Left, Right, Up };
sf::Vector2i screenDimensions(800,600);
sf::RenderWindow window(sf::VideoMode(screenDimensions.x, screenDimensions.y), "SFML Game");
float frameCounter = 0, switchFrame = 100, frameSpeed = 500;
sf::Texture pTexture;
sf::Sprite playerImage;
sf::Clock clock;
sf::Font font;
sf::Music music;
sf::Vector2i source(1, Down);
if(!music.openFromFile("KingOfTheDesert.ogg"))
std::cout << "Error: Could not locate music file." << std::endl;
if(!font.loadFromFile("Gabriola.ttf"))
std::cout << "Error: Could not locate the font file." << std::endl;
if(!pTexture.loadFromFile("Player.png"))
std::cout << "Error: Could not load player image." << std::endl;
else
playerImage.setTexture(pTexture);
while (window.isOpen())
{
sf::Event Event;
while (window.pollEvent(Event))
{
switch(Event.type)
{
case sf::Event::Closed:
window.close();
case sf::Event::KeyPressed:
if(Event.key.code == sf::Keyboard::Up)
source.y = Direction::Up;
else if(Event.key.code == sf::Keyboard::Down)
source.y = Direction::Down;
else if(Event.key.code == sf::Keyboard::Left)
source.y = Direction::Left;
else if(Event.key.code == sf::Keyboard::Right)
source.y = Direction::Right;
if(Event.key.code == sf::Keyboard::P)
music.play();
if(Event.key.code == sf::Keyboard::Escape)
window.close();
}
}
source.x++;
if(source.x * 32 >= pTexture.getSize().x)
source.x = 0;
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Up))
{
source.y = Up;
playerImage.move(0, -10);
}
else if(sf::Keyboard::isKeyPressed(sf::Keyboard::Down))
{
source.y = Down;
playerImage.move(0, 10);
}
else if(sf::Keyboard::isKeyPressed(sf::Keyboard::Right))
{
source.y = Right;
playerImage.move(10, 0);
}
else if(sf::Keyboard::isKeyPressed(sf::Keyboard::Left))
{
source.y = Left;
playerImage.move(-10, 0);
}
frameCounter += frameSpeed * clock.restart().asSeconds();
if(frameCounter >= switchFrame)
{
frameCounter = 0;
source.x++;
if(source.x * 32 >= pTexture.getSize().x)
source.x = 0;
}
playerImage.setTextureRect(sf::IntRect(source.x * 32, source.y * 32, 32, 32));
window.draw(playerImage);
window.display();
window.clear();
}
return 0;
}