Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: [Résolu] Problème avec VertexArray affichage de textures différentes  (Lu 1446 fois)

0 Membres et 1 Invité sur ce sujet

thi121

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Bonjour à tous,

Comme l'indique le titre j'ai un problème avec un VertexArray que j'essaie de créer. Mon but est de créer un background en scrolling horizontale, mais il est tellement grand en dessin que je suis obligé de le découper en plusieurs parties. Pour ça j'ai créer un VertexArray mes les différents Quads que je crée se déforme sauf le dernier crée. Je n'arrive vraiment pas à trouver de solution à mon problème merci de m'aider.

Voici un bout de code :
Bonjour à tous,

Comme l'indique le titre j'ai un problème avec un VertexArray que j'essaie de créer. Mon but est de créer un background en scrolling horizontale, mais il est tellement grand en dessin que je suis obligé de le découper en plusieurs parties. Pour ça j'ai créer un VertexArray mes les différents Quads que je créer se déforme sauf le dernier crée. Je n'arrive vraiment pas à trouver de solution à mon problème merci de m'aider.

Voici un bout de code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
       
#include "TileMap.h"
 
using namespace sf;
using namespace std;
 
bool TileMap::load(vector<Texture>* text, const int* posY,int siz)
{
    t=text;
    int taill=0;
    m_vertices.setPrimitiveType(Quads);
    m_vertices.resize(siz*4);
 
    for (unsigned int i = 0; i < text->size(); ++i)
    {
        Vertex* quad = &m_vertices[i];
 
        quad[0].position = Vector2f(taill, posY[i]);
        quad[1].position = Vector2f(taill+t->at(i).getSize().x, posY[i]);
        quad[2].position = Vector2f(taill+t->at(i).getSize().x, posY[i]+t->at(i).getSize().y);
        quad[3].position = Vector2f(taill, posY[i]+t->at(i).getSize().y);
        taill+=text->at(i).getSize().x;
 
        quad[0].texCoords = Vector2f(0,0);
        quad[1].texCoords = Vector2f(text->at(i).getSize().x, 0);
        quad[2].texCoords = Vector2f(text->at(i).getSize().x, text->at(i).getSize().y);
        quad[3].texCoords = Vector2f(0, text->at(i).getSize().y);
    }
 
    return true;
}
 
void TileMap::draw(RenderTarget& target, RenderStates states) const
{
        states.transform *= getTransform();
 
        for (unsigned int i = 0; i < t->size(); ++i)
        {
            states.texture = &t->at(i);
            target.draw(&m_vertices[i], m_vertices.getVertexCount(),m_vertices.getPrimitiveType(), states);
        }
}
« Modifié: Novembre 30, 2013, 01:12:00 am par thi121 »

thi121

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : Problème avec VertexArray affichage de textures différentes
« Réponse #1 le: Novembre 28, 2013, 08:27:07 pm »
Trouvé tout seul merci