Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SFML/Graphics.hpp>
- #include <SFML/Audio.hpp>
- #include "Animated.hpp"
- sf::Animated zero(47, 51);
- sf::RenderWindow win(sf::VideoMode(853, 480, 32), "Animation Test", sf::Style::Close);
- void thred(void* UserData){
- while(win.IsOpened()){
- zero.Update();
- sf::Sleep(1/1000.f);
- }
- }
- int main(int argc, char** argv) {
- sf::Thread t(&thred);
- win.Clear(); win.Display();
- sf::Image zeroImg;
- zeroImg.LoadFromFile("zerorun.bmp");
- zeroImg.CreateMaskFromColor(sf::Color(255, 0, 255), 0);
- zeroImg.CreateMaskFromColor(sf::Color(0, 0, 0), 0);
- zeroImg.SetSmooth(false);
- zero.SetImage(zeroImg);
- zero.SetScale(4, 4);
- zero.DefineAnimation("standing", 0, 0, 1.f);
- zero.DefineAnimation("run_start", 1, 2, .1f, false);
- zero.DefineAnimation("run", 2, 12, .1f);
- zero.DefineAnimation("jumping", 12, 12, 1.f);
- //zero.Play("run_start");
- zero.SetX(40);
- win.SetFramerateLimit(60);
- bool jumping = false;
- double x = 40, y = 0;
- double yVel = 0;
- t.Launch();
- while(win.IsOpened()){
- sf::Event event;
- while(win.GetEvent(event)){
- if(event.Type == sf::Event::Closed ||
- (event.Type == sf::Event::KeyPressed && event.Key.Code == sf::Key::Escape)) win.Close();
- }
- if(win.GetInput().IsKeyDown(sf::Key::Space) && !jumping){
- jumping = true;
- yVel = 8;
- zero.Play("jumping");
- }
- if(win.GetInput().IsKeyDown(sf::Key::Left)){
- x -= 230*win.GetFrameTime();
- zero.FlipX(true);
- if(zero.GetCurrentAnimation().compare("standing") == 0)
- zero.Play("run_start");
- } else if(win.GetInput().IsKeyDown(sf::Key::Right)){
- x += 230*win.GetFrameTime();
- zero.FlipX(false);
- if(zero.GetCurrentAnimation().compare("standing") == 0)
- zero.Play("run_start");
- } else if(!jumping){
- zero.Play("standing");
- }
- if(!zero.IsPlaying() && zero.GetCurrentAnimation().compare("run_start") == 0)
- zero.Play("run");
- y += yVel;
- if(y<=0 && jumping){
- jumping = false;
- yVel = 0;
- zero.Play("standing");
- }
- if(y > 0){
- yVel -= 9.81*win.GetFrameTime();
- }
- zero.SetX(x);
- zero.SetY(250-y);
- win.Clear();
- //zero.Update();
- win.Draw(zero);
- win.Display();
- }
- return 0;
- }
RAW Paste Data