Ensuite je place mon autre sprite sur celui ci afin que lui soit fixe, mais tournes autour d'un point sans que l'image du sprite tournes et rendes un effet bizarre, de plus avec ça je peux rendre ma hitbox plus intéressante avec juste un petit point au lieu d'un grand sprite qui rotate.
positiondot.x = hitboxspacer.left;
positiondot.y = hitboxspacer.top;
sfSprite_setPosition(spdot, positiondot);
sfRenderWindow_drawSprite(window, spdot, NULL);
Malheureusement même en faisait un +50 en x et y, le sprite "dot" ne bouges pas et reste fixe car la position donnée du spacer (sprite invisible qui tournes) ne changes pas en soi, même si le sprite tournes, il tournes autour de son origine et je places mon dot sur son origine, ce qui ne le fait pas tourner.
Ma question est ducoup comment avoir le point d'un sprite qui ne soit pas son origine et sur laquelle je pourrais placer mon sprite ? Par exemple le coin en bas a droite pourrait marcher car lui tournes, vu que je peux pas faire "hitboxspacer.bottom" et "hitboxspacer.right" et qu'on est limités par top et left, je viens demander l'aider sur ce gentil forum. Merci !
J'ai rien compris, mais si tu veux changer l'origine d'une forme ou d'un sprite avec la SFML, setOrigin(...) est ton ami.
Et à la limite n'hésite pas à poster ton code, ça peut aider.
- Edité par Guit0Xx il y a 5 minutes
Dommage j'ai essayé d'être clair haha, mais c'est vrai pas facile a comprendre.
Oui j'ai déjà set l'origine, mais même en la modifiant, le sprite "spacer" tournera toujours autour de la même origine, et donc ne bougera pas réellement.
Mon code fait 500 lignes mais ceci en concernes pas énormément, mais je peux le poster si tu veux
Oui j'ai déjà set l'origine, mais même en la modifiant, le sprite "spacer" tournera toujours autour de la même origine, et donc ne bougera pas réellement.
Que le sprite tourne autour de l'origine c'est normal. Mais si je comprends bien, c'est le mettre en mouvement qui te dérange ?
MaximeMrht a écrit:
Mon code fait 500 lignes mais ceci en concernes pas énormément, mais je peux le poster si tu veux
500 lignes c'est rien ^^. Vas-y poste-le, je le testerai de mon côté.
Pardon de faire le nul, mais comment je peux le poster? Juste un copié collé énervé ici ?
Et en effet c'est normal qu'il tournes autour de ce point, mais j'arrives pas a mettre un autre sprite qui va suivre celui ci sur autre chôse qu'un point d'origine
Bon il y a plusieurs façon d'aborder le truc, le plus simple c'est de décaler l'origine du 2éme rectangle (celui qui est censé parcourir un cercle) et de le faire tourner en même temps que le rectangle central. Le code source qui correspond :
Après il peut y avoir des approches mathématiques un peu plus complexes selon les besoins.
Dans l'exemple que je t'ai donné, les 2 rectangles tournent sur eux-même, c'est une approche simpliste et rapide. Mais si on veut éviter cela, il va falloir faire y aller à coup d'équations trigonométriques (déplacement d'un point sur un cercle) .
On a pas encore vu la clock en cours (j'ai 1 mois d'experience avec 5h de cours par semaine, je suis en prépa, dans 4 semaines je passes en full prog sorry)
Après il y a une ou deux fonctions que je ne comprends pas a vue d'oeil mais je pense pouvoir m'en sortir !
Je regardes ça demain, je suis vraiment trop fatigué, je te tiens au courant quand je serai frais et dispo demain dans la journée
Merci beaucoup pour ton aide rapide, c'est super !
(PS : Par contre pour l'origine ça va faire que mon 2eme sprite va tourner aussi non? L'idéal serait que lui reste droit, ça fait plus joli )
(Double PS: si tu saurait me le faire en CSFML ce serait parfait, sinon je vais me débrouiller durement pour traduire lol)
Juste une remarque rapide. 500 lignes de code c'est peut être rien, mais un main de 440 lignes c'est énorme par contre ^^". Prends le temps de découper ton code en fonctions, ça rendra tes futures modifications bien plus aisées
Juste une remarque rapide. 500 lignes de code c'est peut être rien, mais un main de 440 lignes c'est énorme par contre ^^". Prends le temps de découper ton code en fonctions, ça rendra tes futures modifications bien plus aisées
Oui je suis au courant, mais c'est plus un test pour l'instant, je suis vraiment débutant en CSFML, ça doit faire une semaine, je prendrai bien le temps de tout mettre sous des fonctions externes plus tard ;)
Guit0Xx a écrit:
Désolé ne compte pas sur moi, je n'ai jamais fait de C .
- Edité par Guit0Xx il y a environ 17 heures
En effet, mais le language C est uniquement pour les premières années, mais merci de la précision je devrais poster en C++ ducoup x)
- Edité par MaximeMrht 10 novembre 2018 à 23:27:21
Juste une remarque rapide. 500 lignes de code c'est peut être rien, mais un main de 440 lignes c'est énorme par contre ^^". Prends le temps de découper ton code en fonctions, ça rendra tes futures modifications bien plus aisées
Oui je suis au courant, mais c'est plus un test pour l'instant, je suis vraiment débutant en CSFML, ça doit faire une semaine, je prendrai bien le temps de tout mettre sous des fonctions externes plus tard ;)
Ca c'est idiot.
1) Tu passes beaucoup plus de temps à relire du code que tu n'en passe à l'écrire. La lisibilité est donc primordiale, un code découpé est bien plus lisible qu'un code monobloc.
2) Le Processeur lui il s'en fout, que tu découpes ou pas ne change presque rien, c'est pour toi que c'est important, s'il y a la moindre coquille dans tes 500 lignes, tu vas galérer pour la trouver, si tu découpes, il est plus facile d'isoler le problème et donc de le corriger.
3) Le découpage amène souvent avec lui la factorisation, la factorisation implique moins de code à écrire, donc mécaniquement moins de risque de bug, car du code qui n'existe pas ne contient aucun bug
4) Le SRP(Single Responsability Principle), diviser pour régner: plus je découpe, plus j'isole les difficultés. Du code qui respecte SRP est plus facile à écrire, je me concentre sur un truc très simple, vu que c'est très simple, je gagne à tout les coups et sur tous les tableaux. Le risque que je me trompe en l'écrivant est très faible et comme c'est très simple, c'est aussi très facile à tester. Une fonction de 500 lignes, c'est impossible à tester, une fonction de moins de 10 lignes peut facilement être testée dans tous les sens. Si j'assemble des blocs dont je suis sûr à 100%, il y a de très grandes chances pour que j'obtienne le résultat voulu à l'arrivée.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
...
...
...
...
...
...