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.


Sujets - loustak

Pages: [1]
1
Général / Appliquer aussi une transformation sur un sprite
« le: Novembre 04, 2016, 11:40:21 pm »
Bonjour,
J'ai une classe qui ressemble à ceci :
lass Card : public sf::Transformable, public sf::Drawable {

private:

        virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const {
                states.transform *= getTransform();
                target.draw(_sprite, states);
        }

        sf::Sprite _sprite;
        sf::RectangleShape _border;
        sf::Texture _texture;
};

Qui me permet donc d'écrire des choses comme ceci :
Card c;
c.setPosition(200, 200);

Mon image est bien déplacer visuellement mais pas logiquement, les coordonnées de _sprite sont resté non pas bougé ce qui est normal, mais comment faire en sorte qu'avec un appel de fonction à setPosion() il bouge le sprite, et la texture sans passer par une fonction dans ma classe ?

Parce que là ça va si j'ai juste à bouger le sprite... mais si je doit aussi pouvoir le faire tourner, le redimensionné etc... ça peut être très long...

Merci de votre aide !

2
Général / Fuite mémoire avec Valgrind
« le: Août 15, 2016, 10:14:17 pm »
Bonjour,
Je test pour la première fois valgrind est celui ci me retourne ceci :
Citer
==4278==
==4278== HEAP SUMMARY:
==4278==     in use at exit: 44,011,424 bytes in 7,449 blocks
==4278==   total heap usage: 13,262 allocs, 5,813 frees, 66,806,341 bytes allocated
==4278==
==4278== LEAK SUMMARY:
==4278==    definitely lost: 688,208 bytes in 8 blocks
==4278==    indirectly lost: 0 bytes in 0 blocks
==4278==      possibly lost: 43,119,823 bytes in 7,166 blocks
==4278==    still reachable: 203,393 bytes in 275 blocks
==4278==         suppressed: 0 bytes in 0 blocks
==4278== Rerun with --leak-check=full to see details of leaked memory
==4278==
==4278== For counts of detected and suppressed errors, rerun with: -v
==4278== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Une belle perte de mémoire donc...
Ma question est, était-elle due à la SFML ou à mon code ? Avec l'option de --leak-check=full je voit qu'il y a des parties qui semble liés à mon code, mais aussi certaines avec la sfml...
Le rapport complet ici : http://pastebin.fr/47466
(le fichier était trop lourd)

Merci de votre aide !

3
Graphique / std::string vers sf::Color
« le: Juin 12, 2016, 01:22:47 pm »
Bonjour,
J'aimerais créer des couleurs depuis un fichier texte. Pour l'instant j'arrive à correctement récupérer le texte en code couleur donc par exemple 255 255 255 pour du blanc. Mais ensuite je veux me servir de ça pour créer une couleur sfml mais ça ne fonctionne pas... Voici mes différents essais :
// Méthode 1 : Avec la conversion en décimal
std::string s = "16777215";
std::string::size_type sz;
int c = std::stoi (s, &sz);
sf::Color color(c);
//Affichage des composante rgb :
//Affichage de la valeur décimal : 0

// Méthode 2 : Avec la conversion via les stringstream
std::string s = "255";
std::stringstream ss(s);
int r, g, b:
ss >> r;
ss >> g;
ss >> b;
sf::Color color(r, g, b);
//Affichage des composante rgb :   � �
//Affichage de la valeur décimal : 16744703

// Méthode 3 : Avec la conversion via atoi
std::string s("255");
int r = atoi(s.c_str())
int g = atoi(s.c_str())
int b = atoi(s.c_str())
sf::Color color(r, g, b);
//Affichage des composante rgb :   C �
//Affichage de la valeur décimal : 4437247

(j'ai aussi essayé le cast vers un sf::Uint8 mais sans succès...)

Voilà quelque soit la méthode utilisé les composante r, g, b ne sont jamais bonne...
Comment résoudre ce problème ?

Merci de votre aide.



4
Général / Gravité et Saut
« le: Février 17, 2015, 09:00:34 am »
Bonjour,
Je réalise un petit jeux 2D de plateforme, par conséquent il me faut une gravité afin d’attirer le joueur vers le bas et pouvoir sauter (double saut). J'ai réussi à mettre en place c'est deux éléments mais il me reste un problème :
La gravité agit tant que le joueur ne touche pas un bloc.
Lorsque le joueur touche un bloc et appuie sur espace on fait sauter le personnage. J'ai créer deux fonctions de déplacement une pour l'axe de X et une pour l'axe des Y. Voici c'elle de l'axe des Y :
void moveImpulsionJump(float timeDelta, bool collision) {
        move(0, acceleration);
        if (timeJump.getElapsedTime().asMilliseconds() > 1) {
                if (acceleration < 5 && collision == false) {
                        acceleration += getWheigth();
                }
                else if (collision == true) {
                        acceleration = 0;
                }
                timeJump.restart();
        }
}

Du coup avec ce code pour faire sauter mon personnage il suffit de mettre accélération à une valeur négative lorsque le joueur appuie sur la bar espace.
Sauf que : quand le joueur est en collision avec un plateforme, on met l'accélération à 0 afin qu'il ne passe pas à travers mais du coup il ne peux plus sauter !

Je ne voit pas comment faire autrement. Merci de votre aide.

5
Général / Déplacer un sprite en fonction d'un angle
« le: Février 16, 2015, 08:36:00 am »
Bonjour,

Je voudrais créer une fonction qui déplace un Sprite en fonction de l'angle renseigner par l'utilisateur.

Je vois le prototype de ma fonction je vois comment faire sauf pour calculer les nouvelles coordonnées.
void setImpulsion(sf::Sprite &sprite, float newAngle, float newPuissance, float newReductor)

J'avais penser à ça : sin(angle) * déplacement ce qui me donne un côté du triangle. Du coup ensuite j'addition les coordonnés en x et c'elle en y et bouge le sprite.

Cependant je ne suis pas sûr que ce soit la bonne méthode.

Merci de votre aide.

6
Graphique / sf::Text qui ne s'affiche pas
« le: Février 13, 2015, 06:07:52 pm »
Bonjour,
J'essaye de créer une classe qui contiennent un sf::Font avec un sf::Text. Voici le code de la classe :
#include "..\inc\Text.h"

Text::Text() {
}

Text::Text(std::string fontPath, std::string textToDraw) {
        if (!font.loadFromFile(fontPath))
        {
                std::cout << "error while openning a font" << std::endl;
        }
        text.setFont(font);
        text.setString(textToDraw);
}

Text::~Text() {
}
 

Et son header :
#pragma once
#include <SFML/Graphics.hpp>
#include <iostream>

class Text : public sf::Font, public sf::Text
{
public:
        Text();
        Text(std::string fontPath, std::string textToDraw);
        virtual ~Text();

private:
        sf::Font font;
        sf::Text text;
};

Enfin j'utilise mon code comme ceci :
Text txVersion("../data/font/Mono.ttf", "");
        version = "Alpha 0.1";
        txVersion.setString(version);
        txVersion.setCharacterSize(24);
        txVersion.setColor(sf::Color::White);
Et enfin la boucle d'affichage :
window.clear(sf::Color::Black); // Clear the window
        txVersion.setPosition(10, 10);
        window.display(); // Display
Cependant mon texte n’apparaît pas...
Je pense que cela viens de ma classe Text, à un moment je pense que la sf::Font ou sf::Text est supprimé de la mémoire mais je n'arrive pas à voir ou ...

Merci de votre aide.

Pages: [1]