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);
}
}