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

Auteur Sujet: Heritage ConvexShape __cinit__ error  (Lu 5866 fois)

0 Membres et 1 Invité sur ce sujet

yabb85

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Heritage ConvexShape __cinit__ error
« le: Mars 12, 2014, 11:56:14 am »
Bonjour,

Je souhaite faire une forme hexagonale. Pour cela j'ai hérité de ConvexShape.
J'aimerais avoir un constructeur du type Hexagone(position, radius, color, thickness, outline_color) mais je ne peux pas surcharger __init__ sinon j'ai une erreur __cinit__.
https://github.com/yabb85/hexagone/blob/master/test.py
Comment est il possible de faire un hexagone avec un tel constructeur?
Merci

Cordialement

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Heritage ConvexShape __cinit__ error
« Réponse #1 le: Mars 12, 2014, 12:14:46 pm »
Pourquoi faire une classe dérivée ? Un hexagone c'est simplement un CircleShape à 6 côtés. Pas besoin de créer une nouvelle classe pour gérer ça.
Laurent Gomila - SFML developer

yabb85

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : Heritage ConvexShape __cinit__ error
« Réponse #2 le: Mars 12, 2014, 09:49:49 pm »
Le problème du CircleShape contient deux soucis:
 - l'origine ne se trouve pas au centre de l'hexagone;
 - pour le mettre avec un coté plat en haut il faut faire une rotation et ma texture se retrouve également impacté par cette rotation.

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Heritage ConvexShape __cinit__ error
« Réponse #3 le: Mars 12, 2014, 10:50:35 pm »
Citer
- l'origine ne se trouve pas au centre de l'hexagone;

hexagon.setOrigin(radius / 2, radius / 2);

Citer
- pour le mettre avec un coté plat en haut il faut faire une rotation et ma texture se retrouve également impacté par cette rotation.

En effet ;D
Laurent Gomila - SFML developer

yabb85

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : Heritage ConvexShape __cinit__ error
« Réponse #4 le: Avril 05, 2014, 04:36:22 pm »
Je me permet de revenir, n'ayant pas trouvé de façon de construire mon hexagone.
Existe t-il un méthode pour pouvoir réaliser ce genre d'objets graphique?
Merci

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32498
    • Voir le profil
    • SFML's website
    • E-mail
Re : Heritage ConvexShape __cinit__ error
« Réponse #5 le: Avril 05, 2014, 07:30:28 pm »
Le plus simple serait d'hériter de sf::Shape, si le binding Python le permet.
Laurent Gomila - SFML developer

yabb85

  • Newbie
  • *
  • Messages: 4
    • Voir le profil
Re : Heritage ConvexShape __cinit__ error
« Réponse #6 le: Avril 05, 2014, 11:59:14 pm »
En héritant de sf.Shape j'ai le même soucis. Mais j'ai fait un héritage sf.TanformableDrawable et j'ai utilisé un VertexArray.
Il ne me reste plus qu'a gérer les textures.
Je pourrai montrer le code fini si cela peut intéresser une personne.

davs63

  • Newbie
  • *
  • Messages: 17
    • Voir le profil
Re : Heritage ConvexShape __cinit__ error
« Réponse #7 le: Novembre 28, 2014, 10:13:08 am »
Post le ici :) ça pourra toujours servir :)