Forum de la communauté SFML

Bindings - autres langages => Python => Discussion démarrée par: yabb85 le Mars 12, 2014, 11:56:14 am

Titre: Heritage ConvexShape __cinit__ error
Posté par: yabb85 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 (https://github.com/yabb85/hexagone/blob/master/test.py)
Comment est il possible de faire un hexagone avec un tel constructeur?
Merci

Cordialement
Titre: Re : Heritage ConvexShape __cinit__ error
Posté par: Laurent 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.
Titre: Re : Heritage ConvexShape __cinit__ error
Posté par: yabb85 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.
Titre: Re : Heritage ConvexShape __cinit__ error
Posté par: Laurent 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
Titre: Re : Heritage ConvexShape __cinit__ error
Posté par: yabb85 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
Titre: Re : Heritage ConvexShape __cinit__ error
Posté par: Laurent le Avril 05, 2014, 07:30:28 pm
Le plus simple serait d'hériter de sf::Shape, si le binding Python le permet.
Titre: Re : Heritage ConvexShape __cinit__ error
Posté par: yabb85 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.
Titre: Re : Heritage ConvexShape __cinit__ error
Posté par: davs63 le Novembre 28, 2014, 10:13:08 am
Post le ici :) ça pourra toujours servir :)