Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Messages - nono29

Pages: [1]
1
Graphique / avertissement pour depassement arithmetrique
« le: Mars 17, 2023, 04:27:04 pm »
Bonjour à tous!
difficile de trier les messages alors j'expose le soucis que j'ai.
J'ai besoin d'un tableau 2d, alors j'ai recopié fidèlement (sur visual stud 2019) les explications SFML, et je suis étonné de trouver du code souligné (vert ->avertissement pour dépassement arithmétique) sur un .resize et
plus bas tjs sur une variable int width.
ça compile mais bon......
Est ce que quelqu'un pourrait me dire comment palier à ce défaut .
Je mets le bout de code et merci si quelqu'un a les compétences et surtout le temps de m'aider.
BM
c'est  width * height * 4   et  [(i+j * width)* 4] qui sont soulignés

public:
        bool load(const string& tileset, Vector2u tileSize, const int* tiles,
                unsigned int width, unsigned int height)
        {

                // charge texture du tileset
                if (!m_tileset.loadFromFile(tileset))
                        return false;

                //on redimentionne tableau vertex
                m_vertices.setPrimitiveType(Quads);
                m_vertices.resize([u]width * height * 4);[/u]

                // on rempli tableau de vertex avec un quad par tuile
                for (unsigned int i = 0; i < width; ++i)
                        for (unsigned int j = 0; j < height; ++j)
                        {
                                // on recupere n° de tuile courant
                                int tileNumber = tiles[i + j * width];

                                // on deduit position dans texture tileset
                                int tu = tileNumber % (m_tileset.getSize().x / tileSize.x);
                                int tv = tileNumber / (m_tileset.getSize().x / tileSize.x);

                                //recp pointeur vers quad à definir dans tableau vertex
                                Vertex* quad = &m_vertices[[u](i + j * width) * 4][/u];

Pages: [1]
anything