Ajout des nouvelles textures joueurs
This commit is contained in:
		
							parent
							
								
									2036485b43
								
							
						
					
					
						commit
						ded76a3527
					
				| 
						 | 
					@ -11,6 +11,9 @@ public:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					private:
 | 
				
			||||||
    mutable sf::CircleShape sprite;
 | 
					    mutable sf::CircleShape sprite;
 | 
				
			||||||
 | 
					    sf::CircleShape shadow_sprite;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    mutable sf::Vector2f previous_position;
 | 
				
			||||||
    unsigned int player_number;
 | 
					    unsigned int player_number;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
| 
						 | 
					@ -79,12 +82,6 @@ public:
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    virtual void save(std::ofstream& file) const;
 | 
					    virtual void save(std::ofstream& file) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * Met à jour la position de l'objet selon sa
 | 
					 | 
				
			||||||
     * vitesse actuelle
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    virtual void updatePosition();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Renvoie le numéro du joueur
 | 
					     * Renvoie le numéro du joueur
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -64,12 +64,34 @@ sf::Vector2f Player::getForces(const Game& game) const {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Player::draw(Level& level) {
 | 
					void Player::draw(Level& level) {
 | 
				
			||||||
    // utilisation de la texture
 | 
					    // on charge la texture selon le numéro du joueur
 | 
				
			||||||
 | 
					    std::string texture_name;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (getPlayerNumber() == 0) {
 | 
				
			||||||
 | 
					        texture_name = "player_1.tga";
 | 
				
			||||||
 | 
					    } else {
 | 
				
			||||||
 | 
					        texture_name = "player_2.tga";
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    sprite.setTexture(&level.getResourceManager().getTexture(texture_name));
 | 
				
			||||||
    sprite.setRadius(getRadius());
 | 
					    sprite.setRadius(getRadius());
 | 
				
			||||||
    sprite.setOrigin(sf::Vector2f(getRadius(), getRadius()));
 | 
					    sprite.setOrigin(sf::Vector2f(getRadius(), getRadius()));
 | 
				
			||||||
	sprite.setTexture(
 | 
					    sprite.setPosition(getPosition());
 | 
				
			||||||
        &level.getResourceManager().getTexture("player.tga")
 | 
					
 | 
				
			||||||
    );
 | 
					    shadow_sprite.setTexture(&level.getResourceManager().getTexture("player_shadow.tga"));
 | 
				
			||||||
 | 
					    shadow_sprite.setRadius(getRadius() - 1);
 | 
				
			||||||
 | 
					    shadow_sprite.setOrigin(sf::Vector2f(getRadius() - 1, getRadius() - 1));
 | 
				
			||||||
 | 
					    shadow_sprite.setPosition(getPosition());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // on fait tourner le sprite selon la différence de position
 | 
				
			||||||
 | 
					    if (previous_position != sf::Vector2f(0, 0)) {
 | 
				
			||||||
 | 
					        sprite.rotate(
 | 
				
			||||||
 | 
					            (getPosition() - previous_position).x *
 | 
				
			||||||
 | 
					            level.getRightDirection().x * .015f
 | 
				
			||||||
 | 
					        );
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    previous_position = getPosition();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // si le joueur est sélectionné, on met sa bordure en rouge
 | 
					    // si le joueur est sélectionné, on met sa bordure en rouge
 | 
				
			||||||
    if (isSelected()) {
 | 
					    if (isSelected()) {
 | 
				
			||||||
| 
						 | 
					@ -87,9 +109,9 @@ void Player::draw(Level& level) {
 | 
				
			||||||
        sprite.setFillColor(sf::Color::Transparent);
 | 
					        sprite.setFillColor(sf::Color::Transparent);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // déplacement du sprite à la position de la balle
 | 
					    // dessin des sprites
 | 
				
			||||||
    sprite.setPosition(getPosition());
 | 
					 | 
				
			||||||
    level.getWindow().draw(sprite);
 | 
					    level.getWindow().draw(sprite);
 | 
				
			||||||
 | 
					    level.getWindow().draw(shadow_sprite);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Player::activate(Game& game, Object::Ptr object) {
 | 
					void Player::activate(Game& game, Object::Ptr object) {
 | 
				
			||||||
| 
						 | 
					@ -98,14 +120,6 @@ void Player::activate(Game& game, Object::Ptr object) {
 | 
				
			||||||
    // qui s'occupe de la réponse
 | 
					    // qui s'occupe de la réponse
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Player::updatePosition() {
 | 
					 | 
				
			||||||
    // calcul de la différence de position pour connaître
 | 
					 | 
				
			||||||
    // (approximativement) la rotation de la balle
 | 
					 | 
				
			||||||
    sf::Vector2f last_position = getPosition();
 | 
					 | 
				
			||||||
    Object::updatePosition();
 | 
					 | 
				
			||||||
    sprite.rotate((getPosition() - last_position).x * 3.f);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
sf::FloatRect Player::getAABB() const {
 | 
					sf::FloatRect Player::getAABB() const {
 | 
				
			||||||
    return sf::FloatRect(
 | 
					    return sf::FloatRect(
 | 
				
			||||||
        getPosition().x - getRadius(),
 | 
					        getPosition().x - getRadius(),
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue