Guest User

Untitled

a guest
Jul 16th, 2011
73
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <SFML/Graphics.hpp>
  2. #include <SFML/Audio.hpp>
  3.  
  4. #include "Animated.hpp"
  5.  
  6. sf::Animated zero(47, 51);
  7. sf::RenderWindow win(sf::VideoMode(853, 480, 32), "Animation Test", sf::Style::Close);
  8.  
  9. void thred(void* UserData){
  10.     while(win.IsOpened()){
  11.         zero.Update();
  12.         sf::Sleep(1/1000.f);
  13.     }
  14. }
  15.  
  16. int main(int argc, char** argv) {
  17.     sf::Thread t(&thred);
  18.    
  19.     win.Clear(); win.Display();
  20.    
  21.     sf::Image zeroImg;
  22.     zeroImg.LoadFromFile("zerorun.bmp");
  23.     zeroImg.CreateMaskFromColor(sf::Color(255, 0, 255), 0);
  24.     zeroImg.CreateMaskFromColor(sf::Color(0, 0, 0), 0);
  25.     zeroImg.SetSmooth(false);
  26.    
  27.    
  28.     zero.SetImage(zeroImg);
  29.    
  30.     zero.SetScale(4, 4);
  31.    
  32.     zero.DefineAnimation("standing", 0, 0, 1.f);
  33.     zero.DefineAnimation("run_start", 1, 2, .1f, false);
  34.     zero.DefineAnimation("run", 2, 12, .1f);
  35.     zero.DefineAnimation("jumping", 12, 12, 1.f);
  36.     //zero.Play("run_start");
  37.     zero.SetX(40);
  38.    
  39.     win.SetFramerateLimit(60);
  40.    
  41.     bool jumping    = false;
  42.     double x = 40, y = 0;
  43.     double yVel = 0;
  44.    
  45.     t.Launch();
  46.    
  47.     while(win.IsOpened()){
  48.         sf::Event event;
  49.         while(win.GetEvent(event)){
  50.             if(event.Type == sf::Event::Closed ||
  51.                (event.Type == sf::Event::KeyPressed && event.Key.Code == sf::Key::Escape)) win.Close();
  52.         }
  53.        
  54.         if(win.GetInput().IsKeyDown(sf::Key::Space) && !jumping){
  55.             jumping = true;
  56.             yVel    = 8;
  57.             zero.Play("jumping");
  58.         }
  59.        
  60.         if(win.GetInput().IsKeyDown(sf::Key::Left)){
  61.             x   -= 230*win.GetFrameTime();
  62.             zero.FlipX(true);
  63.            
  64.             if(zero.GetCurrentAnimation().compare("standing") == 0)
  65.                 zero.Play("run_start");
  66.         } else if(win.GetInput().IsKeyDown(sf::Key::Right)){
  67.             x   += 230*win.GetFrameTime();
  68.             zero.FlipX(false);
  69.            
  70.             if(zero.GetCurrentAnimation().compare("standing") == 0)
  71.                 zero.Play("run_start");
  72.         } else if(!jumping){
  73.             zero.Play("standing");
  74.         }
  75.        
  76.         if(!zero.IsPlaying() && zero.GetCurrentAnimation().compare("run_start") == 0)
  77.             zero.Play("run");
  78.        
  79.         y   += yVel;
  80.  
  81.         if(y<=0 && jumping){
  82.             jumping = false;
  83.             yVel    = 0;
  84.            
  85.             zero.Play("standing");
  86.         }
  87.        
  88.         if(y > 0){
  89.             yVel    -= 9.81*win.GetFrameTime();
  90.         }
  91.        
  92.         zero.SetX(x);
  93.         zero.SetY(250-y);
  94.        
  95.         win.Clear();
  96.        
  97.         //zero.Update();
  98.         win.Draw(zero);
  99.        
  100.         win.Display();
  101.     }
  102.    
  103.     return 0;
  104. }
RAW Paste Data