Files
sfml-animated-sprite/test/test.cpp
2019-02-19 21:24:56 +01:00

105 lines
2.0 KiB
C++

#include "../animatedsprite.hpp"
#include <cstdio>
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(800, 600), "AnimatedSprite Test");
window.setVerticalSyncEnabled(true);
sf::Texture texture;
if(!texture.loadFromFile("test.png"))
{
std::puts("Failed to load <test.png> texture.");
return 1;
}
auto const animations = Animation::LoadFromFile("testanimations.txt");
if(animations.size() == 0)
{
std::puts("Test animations definition file was empty or read incorrectly.");
return 1;
}
Animation::Sprite sprite(animations, "default", texture);
std::puts("Use the numerical keys to cycle through animations (1-7)");
sf::Clock sfclock;
bool good = true;
while(good)
{
sf::Event e;
while(window.pollEvent(e))
{
switch(e.type)
{
case sf::Event::Closed:
good = false;
break;
case sf::Event::KeyReleased:
switch(e.key.code)
{
case sf::Keyboard::Escape:
good = false;
break;
case sf::Keyboard::Up:
sprite.SetHorizontalFlip(!sprite.IsFlippedHorizontally());
break;
case sf::Keyboard::Down:
sprite.SetVerticalFlip(!sprite.IsFlippedVertically());
break;
case sf::Keyboard::R:
sprite.ResetAnimation();
break;
case sf::Keyboard::Num1:
sprite.SetAnimation("default");
break;
case sf::Keyboard::Num2:
sprite.SetAnimation("default-reverse");
break;
case sf::Keyboard::Num3:
sprite.SetAnimation("default-fast");
break;
case sf::Keyboard::Num4:
sprite.SetAnimation("carousel");
break;
case sf::Keyboard::Num5:
sprite.SetAnimation("carousel-margin");
break;
case sf::Keyboard::Num6:
sprite.SetAnimation("carousel-reverse");
break;
case sf::Keyboard::Num7:
sprite.SetAnimation("carousel-bounce");
break;
default:
break;
}
default:
break;
}
}
sprite.Update(sfclock.restart());
window.clear();
window.draw(sprite);
window.display();
}
window.close();
return 0;
}