Advertisement
Guest User

Untitled

a guest
May 10th, 2015
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. #include <SFML/Graphics.hpp>
  2. #include <iostream>
  3.  
  4.  
  5. class Troops
  6. {
  7. public:
  8. virtual sf::Texture& spawn() = 0;
  9. virtual sf::Sprite& sprite();
  10. protected:
  11. sf::Texture _mob;
  12. sf::Sprite _sprite;
  13. };
  14. sf::Sprite& Troops::sprite()
  15. {
  16. _sprite.setTexture(spawn());
  17. _sprite.setTextureRect(sf::IntRect(32,0,32,32));
  18. return _sprite;
  19. }
  20. class Yellowhair : public Troops
  21. {
  22. sf::Texture& spawn();
  23. //sf::Sprite& sprite();
  24. };
  25.  
  26. class Bandit : public Troops
  27. {
  28. sf::Texture& spawn();
  29. // sf::Sprite& sprite();
  30. };
  31.  
  32. class Doomknight : public Troops
  33. {
  34. sf::Texture& spawn();
  35. // sf::Sprite& sprite();
  36. };
  37.  
  38. class Rouge : public Troops
  39. {
  40. sf::Texture& spawn();
  41. // sf::Sprite& sprite();
  42. };
  43.  
  44. sf::Texture& Yellowhair::spawn()
  45. {
  46. if (!_mob.loadFromFile("troops/yellowhair.png"))
  47. std::cout << "Error could not load the file";
  48. return _mob;
  49.  
  50. }
  51.  
  52. sf::Texture& Bandit::spawn()
  53. {
  54. if(!_mob.loadFromFile("troops/bandit.png"));
  55. std::cout << "Error could not load the file";
  56. return _mob;
  57. }
  58.  
  59. sf::Texture& Doomknight::spawn()
  60. {
  61. if(!_mob.loadFromFile("troops/doomknight.png"));
  62. std::cout << "Error could not load the file";
  63. return _mob;
  64. }
  65.  
  66. sf::Texture& Rouge::spawn()
  67. {
  68. if(!_mob.loadFromFile("troops/rouge.png"));
  69. std::cout << "Error could not load the file";
  70. return _mob;
  71. }
  72.  
  73.  
  74.  
  75. int main()
  76. {
  77. sf::RenderWindow w(sf::VideoMode(500,500),"SFML WORKS!",sf::Style::Default);
  78. sf::Texture texture;
  79. if( !texture.loadFromFile("troops/trooplist.png"))return 0;
  80. sf::Sprite spr;
  81. spr.setTexture(texture);
  82. spr.setPosition(sf::Vector2f(0,w.getSize().y - texture.getSize().y));
  83.  
  84.  
  85. Troops *troops[4]{
  86. new Yellowhair,
  87. new Bandit,
  88. new Doomknight,
  89. new Rouge
  90. };
  91.  
  92. // enum dir { DOWN,LEFT,RIGHT,UP };
  93. int select = 0;
  94. w.draw(spr);
  95. while(w.isOpen())
  96. {
  97. sf::Event event;
  98. while(w.pollEvent(event))
  99. {
  100. if ( sf::Keyboard::isKeyPressed(sf::Keyboard::Num1) )
  101. {
  102. select = 1;
  103. }
  104. else if ( sf::Keyboard::isKeyPressed(sf::Keyboard::Num2) )
  105. {
  106. select = 2;
  107. }
  108. else if ( sf::Keyboard::isKeyPressed(sf::Keyboard::Num3) )
  109. {
  110. select = 3;
  111. }
  112. else if ( sf::Keyboard::isKeyPressed(sf::Keyboard::Num4) )
  113. {
  114. select = 4;
  115. }
  116. if ( select )
  117. {
  118.  
  119. if ( sf::Mouse::isButtonPressed(sf::Mouse::Left) )
  120. {
  121. //sprite[select-1].setPosition(sf::Vector2f(event.mouseButton.x,event.mouseButton.y));
  122. //w.draw(sprite[select-1]);
  123. troops[select-1]->sprite().setPosition(sf::Vector2f(event.mouseButton.x,event.mouseButton.y));
  124. w.draw(troops[select-1]->sprite());
  125.  
  126. }
  127. }
  128. }
  129.  
  130. w.display();
  131. }
  132. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement