Advertisement
Guest User

;(

a guest
Dec 2nd, 2014
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.77 KB | None | 0 0
  1. //-------------------------Tree.h-------------------------------------
  2. //
  3. //
  4. //
  5.  
  6. #ifndef TREE_H
  7. #define TREE_H
  8. #include "GameObject.h"
  9. #include <SFML/Graphics.hpp>
  10. class Tree : public GameObject
  11. {
  12. public:
  13.     Tree();
  14.     void update(const sf::Time&);
  15.    
  16.     //Setters
  17.     void setHealth(const int);
  18.    
  19.     //Getters
  20.     sf::Sprite getUpperLeafOne();
  21.     sf::Sprite getUpperLeafTwo();
  22.     sf::Sprite getUpperLeafThree();
  23.     sf::Sprite getUpperLeafFour();
  24.     sf::Sprite getLowerLeafOne();
  25.     sf::Sprite getLowerLeafTwo();
  26.     sf::Sprite getLowerLeafThree();
  27.     sf::Sprite getLowerLeafFour();
  28.     sf::CircleShape getBaseCircle();
  29.     int getHealth();
  30.    
  31.  
  32. private:
  33.    
  34.     //Graphical
  35.     sf::Texture upperLeafTexture_;
  36.     sf::Texture lowerLeafTexture_;
  37.     sf::Sprite upperLeafOne_;
  38.     sf::Sprite upperLeafTwo_;
  39.     sf::Sprite upperLeafThree_;
  40.     sf::Sprite upperLeafFour_;
  41.     sf::Sprite lowerLeafOne_;
  42.     sf::Sprite lowerLeafTwo_;
  43.     sf::Sprite lowerLeafThree_;
  44.     sf::Sprite lowerLeafFour_;
  45.     sf::CircleShape baseCircle_;
  46.    
  47.    
  48.     //Item properties
  49.     int health_ = 250;
  50.     int rewardMin_ = 2;
  51.     int rewardMax_ = 4;
  52.     float swayMultiplier_ = 2; //Used to increase sway when being shot
  53.     //Clocks
  54.     sf::Clock swayClock_; //Used for sway animation
  55.    
  56. };
  57.  
  58. #endif 
  59.  
  60.  
  61. //-------------------------Tree.cpp--------------------------------
  62. //
  63. //
  64. //
  65. #include "Tree.h"
  66.  
  67. Tree::Tree()
  68. {
  69.     //Gets Textures
  70.     upperLeafTexture_.loadFromFile("tree__upper.png");
  71.     lowerLeafTexture_.loadFromFile("tree_lower.png");
  72.    
  73.     //Assigns textures
  74.     upperLeafOne_.setTexture(upperLeafTexture_);
  75.     upperLeafTwo_.setTexture(upperLeafTexture_);
  76.     upperLeafThree_.setTexture(upperLeafTexture_);
  77.     upperLeafFour_.setTexture(upperLeafTexture_);
  78.     lowerLeafOne_.setTexture(lowerLeafTexture_);
  79.     lowerLeafTwo_.setTexture(lowerLeafTexture_);
  80.     lowerLeafThree_.setTexture(lowerLeafTexture_);
  81.     lowerLeafFour_.setTexture(lowerLeafTexture_);
  82.    
  83.     //Sets up circle
  84.     baseCircle_.setRadius(10.0f);
  85.     baseCircle_.setFillColor(sf::Color(128,91,42));
  86.    
  87.     //Origins
  88.     upperLeafOne_.setOrigin(20, 79);
  89.     upperLeafTwo_.setOrigin(20, 79);
  90.     upperLeafThree_.setOrigin(20, 79);
  91.     upperLeafFour_.setOrigin(20, 79);
  92.     lowerLeafOne_.setOrigin(19, 70);
  93.     lowerLeafTwo_.setOrigin(19, 70);
  94.     lowerLeafThree_.setOrigin(19, 70);
  95.     lowerLeafFour_.setOrigin(19, 70);
  96.  
  97.     //Rotations
  98.     upperLeafOne_.setRotation(30);
  99.     upperLeafTwo_.setRotation(120);
  100.     upperLeafThree_.setRotation(210);
  101.     upperLeafFour_.setRotation(300);
  102.     lowerLeafOne_.setRotation(75);
  103.     lowerLeafTwo_.setRotation(165);
  104.     lowerLeafThree_.setRotation(255);
  105.     lowerLeafFour_.setRotation(345);
  106. }
  107. void Tree::update(const sf::Time& dT)
  108. {
  109.     lowerLeafOne_.setPosition(positionGlobal_);
  110.     lowerLeafTwo_.setPosition(positionGlobal_);
  111.     lowerLeafThree_.setPosition(positionGlobal_);
  112.     lowerLeafFour_.setPosition(positionGlobal_);
  113.     upperLeafOne_.setPosition(positionGlobal_);
  114.     upperLeafTwo_.setPosition(positionGlobal_);
  115.     upperLeafThree_.setPosition(positionGlobal_);
  116.     upperLeafFour_.setPosition(positionGlobal_);
  117.     baseCircle_.setPosition(positionGlobal_);
  118.    
  119.     lowerLeafOne_.rotate(sin(swayClock_.getElapsedTime().asSeconds() + 2.0f) / 25.0f);
  120.     lowerLeafTwo_.rotate(sin(swayClock_.getElapsedTime().asSeconds() + 4.0f) / 25.0f);
  121.     lowerLeafThree_.rotate(sin(swayClock_.getElapsedTime().asSeconds() + 6.0f) / 25.0f);
  122.     lowerLeafFour_.rotate(sin(swayClock_.getElapsedTime().asSeconds() + 8.0f) / 25.0f);
  123.     upperLeafOne_.rotate(sin(swayClock_.getElapsedTime().asSeconds() + 10.0f) / 25.0f);
  124.     upperLeafTwo_.rotate(sin(swayClock_.getElapsedTime().asSeconds() + 12.0f) / 25.0f);
  125.     upperLeafThree_.rotate(sin(swayClock_.getElapsedTime().asSeconds() + 14.0f) / 25.0f);
  126.     upperLeafFour_.rotate(sin(swayClock_.getElapsedTime().asSeconds() + 16.0f) / 25.0f);
  127. }
  128.  
  129. //Setters
  130. void Tree::setHealth(const int health) {health_ = health;}
  131.  
  132. //Getters
  133. sf::Sprite Tree::getLowerLeafOne() {return lowerLeafOne_;}
  134. sf::Sprite Tree::getLowerLeafTwo() {return lowerLeafTwo_;}
  135. sf::Sprite Tree::getLowerLeafThree() {return lowerLeafThree_;}
  136. sf::Sprite Tree::getLowerLeafFour() {return lowerLeafFour_;}
  137. sf::Sprite Tree::getUpperLeafOne() {return upperLeafOne_;}
  138. sf::Sprite Tree::getUpperLeafTwo() {return upperLeafTwo_;}
  139. sf::Sprite Tree::getUpperLeafThree() {return upperLeafThree_;}
  140. sf::Sprite Tree::getUpperLeafFour() {return upperLeafFour_;}
  141. sf::CircleShape Tree::getBaseCircle() {return baseCircle_;}
  142. int Tree::getHealth() {return health_;}
  143.  
  144. //---------------------------In Level.cpp----------------------------
  145. //
  146. //
  147. //
  148.             //Places trees
  149.             if(height > rangeShallowWater && std::rand() % 100 <= 2)
  150.             {
  151.                 vTrees_.push_back(Tree());
  152.                 vTrees_.at(vTrees_.size() - 1).setPositionGlobal(sf::Vector2f(xPos * 50, yPos * 50));
  153.             }
  154.  
  155. //...... in the .h
  156. std::vector<Tree> getTrees();
  157.  
  158. //..... in the .cpp
  159. std::vector<Tree> Level::getTrees() {return vTrees_;}
  160.  
  161.  
  162. //-------------------------------------in Engine.cpp draw function---------------------------------
  163.     //Draws trees
  164.     std::vector<Tree> vTrees = level_.getTrees();
  165.     for(auto iTree = vTrees.begin(); iTree != vTrees.end(); ++iTree)
  166.     {
  167.         window_.draw(iTree->getLowerLeafOne());
  168.         window_.draw(iTree->getLowerLeafTwo());
  169.         window_.draw(iTree->getLowerLeafThree());
  170.         window_.draw(iTree->getLowerLeafFour());
  171.         window_.draw(iTree->getUpperLeafOne());
  172.         window_.draw(iTree->getUpperLeafTwo());
  173.         window_.draw(iTree->getUpperLeafThree());
  174.         window_.draw(iTree->getUpperLeafFour());
  175.         window_.draw(iTree->getBaseCircle());
  176.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement