105 lines
2.0 KiB
C++
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;
|
|
} |