Advertisement
Threonine

Bois.cpp

Oct 10th, 2013
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.31 KB | None | 0 0
  1. #include "bois.h"
  2.  
  3. bool Bois::load(const std::string& fichier, sf::Vector2u tailleTuile, int *tuiles, int largeur, int hauteur){
  4.     if(!m_texture.loadFromFile(fichier)){
  5.         return false;
  6.     }
  7.        
  8.     m_vertices.setPrimitiveType(sf::Quads);
  9.     m_vertices.resize(largeur * hauteur * 4);
  10.    
  11.     for(int i = 0; i < largeur; i++){
  12.         for(int j = 0; j < hauteur; j++){
  13.             int numeroTuile = tuiles[i + j * largeur];
  14.            
  15.             sf::Vertex *quad = &m_vertices[(i + j * largeur) * 4];
  16.            
  17.             quad[0].position = sf::Vector2f(i * tailleTuile.x, j * tailleTuile.y);
  18.             quad[1].position = sf::Vector2f((i + 1) * tailleTuile.x, j * tailleTuile.y);
  19.             quad[2].position = sf::Vector2f((i + 1) * tailleTuile.x, (j + 1) * tailleTuile.y);
  20.             quad[3].position = sf::Vector2f(i * tailleTuile.x, (j + 1) * tailleTuile.y);
  21.            
  22.             quad[0].texCoords = sf::Vector2f(numeroTuile * tailleTuile.x, 0);
  23.             quad[1].texCoords = sf::Vector2f((numeroTuile + 1) * tailleTuile.x, 0);
  24.             quad[2].texCoords = sf::Vector2f((numeroTuile + 1) * tailleTuile.x, tailleTuile.y);
  25.             quad[3].texCoords = sf::Vector2f(numeroTuile * tailleTuile.x, tailleTuile.y);
  26.         }
  27.     }
  28.    
  29.     return true;
  30. }
  31.  
  32. void Bois::draw(sf::RenderTarget &target, sf::RenderStates states) const{
  33.     states.transform *= getTransform();
  34.     states.texture = &m_texture;
  35.    
  36.     target.draw(m_vertices, states);
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement