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

Auteur Sujet: Vertex et Vector2f  (Lu 2280 fois)

0 Membres et 1 Invité sur ce sujet

nicox11

  • Jr. Member
  • **
  • Messages: 51
    • Voir le profil
Vertex et Vector2f
« le: Juin 06, 2013, 11:11:10 pm »
Bonjour,

J'ai le code suivant mais je ne comprends pas l'erreur renvoyé par le compilateur. Quelqu'un pour me corriger et m'expliquer ?
Merci


sf::Vertex quad[4];

quad[0].texCoords = sf::Vector2f(tx * tileset->m_tileSizeX + ty * tileset->m_tileSizeY);
quad[1].texCoords = sf::Vector2f((tx + 1) * tileset->m_tileSizeX + ty * tileset->m_tileSizeY);
quad[2].texCoords = sf::Vector2f((tx + 1) * tileset->m_tileSizeX + (ty + 1) * tileset->m_tileSizeY);
quad[3].texCoords = sf::Vector2f(tx * tileset->m_tileSizeX + (ty + 1) * tileset->m_tileSizeY);

Ligne 3 : erreur: no matching function for call to 'sf::Vector2<float>::Vector2(int)'

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : Vertex et Vector2f
« Réponse #1 le: Juin 06, 2013, 11:14:18 pm »
Salut ,
Regarde bien :
sf::Vector2f(tx * tileset->m_tileSizeX + ty * tileset->m_tileSizeY);

Lis bien :
http://www.sfml-dev.org/documentation/2.0-fr/classsf_1_1Vector2.php#aed26a72164e59e8a4a0aeee2049568f1

@++

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Vertex et Vector2f
« Réponse #2 le: Juin 06, 2013, 11:15:26 pm »
Les coordonnées de texture sont des Vector2i, pas des Vector2f. Ensuite, et surtout, tu as des '+' au lieu des ',' du coup tu ne passes qu'un argument au constructeur.
Laurent Gomila - SFML developer

nicox11

  • Jr. Member
  • **
  • Messages: 51
    • Voir le profil
Re : Vertex et Vector2f
« Réponse #3 le: Juin 06, 2013, 11:21:04 pm »
En effet une étourderie. Mais bon je ne comprends pas la prochaine erreur non plus :

quad[0].texCoords = sf::Vector2i(tx * tileset->m_tileSizeX, ty * tileset->m_tileSizeY);
            quad[1].texCoords = sf::Vector2i((tx + 1) * tileset->m_tileSizeX, ty * tileset->m_tileSizeY);
            quad[2].texCoords = sf::Vector2i((tx + 1) * tileset->m_tileSizeX, (ty + 1) * tileset->m_tileSizeY);
            quad[3].texCoords = sf::Vector2i(tx * tileset->m_tileSizeX, (ty + 1) * tileset->m_tileSizeY);

erreur: no match for 'operator=' in 'quad[0].sf::Vertex::texCoords = sf::Vector2<int>((tileset->Tileset::m_tileSizeX * tx), (tileset->Tileset::m_tileSizeY * ty))

et puis dans la doc je vois vector2f ?
http://www.sfml-dev.org/documentation/2.0-fr/classsf_1_1Vertex.php

« Modifié: Juin 06, 2013, 11:23:22 pm par nicox11 »

Cpl.Bator

  • Hero Member
  • *****
  • Messages: 540
    • Voir le profil
Re : Vertex et Vector2f
« Réponse #4 le: Juin 06, 2013, 11:38:42 pm »
Citer
Note: although texture coordinates are supposed to be an integer amount of pixels, their type is float because of some buggy graphics drivers that are not able to process integer coordinates correctly.

T'es coordonnées de texture on l'air foireuse.  Relis bien la doc sur les vertex.

@++

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Vertex et Vector2f
« Réponse #5 le: Juin 07, 2013, 08:08:47 am »
Oups, on dirait que j'ai dit une connerie ;D
Laurent Gomila - SFML developer

nicox11

  • Jr. Member
  • **
  • Messages: 51
    • Voir le profil
Re : Vertex et Vector2f
« Réponse #6 le: Juin 07, 2013, 12:38:58 pm »
En fait c'était juste que j'avais mis des + à la place des ,  :)
Une erreur bête quoi.

Merci à vous deux.