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 - Bl4ckb0ne

Pages: [1]
1
Général / Besoin d'éclaircissement sur les positions en float
« le: Mai 09, 2013, 11:44:15 pm »
Salut à tous.

Je suis légèrement perdu au niveau des positions des sprites. Je ne comprend pas l'utilisation du float pour la position, et je ne vois pas comment faire pour positionner tel sprite à X pixels du bord supérieur et X pixels du bord gauche de la fenêtre.

Merci d'avance.

2
Général / Gravityé et collisions
« le: Avril 30, 2013, 12:28:59 pm »
Salut à tous.

Je bosse actuellement sur un projet de jeu de plateforme en 2d, avec la SFML.

Et j'aimerai intégrer un système de gravité au sprites, pour les attirer vers le sol. J'ai regardé du côté de Box2D, mais j'ai beaucoup de mal à la lier avec la SFML. Donc je me suis dit : pourquoi pas coder à la main un fonction de gravité toute simple.

J'ai quelques notions de physiques, donc les formules ne devraient pas être difficiles à coder. Mais au niveau de l'intégration. Comment faire pour que tous les sprites présent dans la fenêtre de rendu soient attirés vers le sol!

De même pour la collision des sprites. J'ai quelques bout de codes pompé sur le net, mais je ne vois pas comment intégrer tout ça pour que tous les sprites de la fenêtre puissent gérer les collisions, et aussi les collisions avec le décors en tile mapping.

Voilà, si quelqu'un arrive à répondre à mes questions farfelues, merci d'avance.

3
Graphique / Passage Image=>Texture=>Sprite
« le: Mars 05, 2013, 12:12:15 am »
Salut à tous.

Je bug sur une partie de fonction; je file le bout de code.

       
        ImageSprite.createMaskFromColor(sf::Color(0 ,255 , 0)); //création du masque de couleur
        sf::Texture TextureSprite; //chargement de l'image dans la texture
        TextureSprite.loadFromImage(ImageSprite); //chargement de l'image dans la texture
        sf::Sprite SpriteSprite(TextureSprite); //chargement de la texture dans un sprite
 

En gros, la fonction reçoit une sf::Image, lui colle un masque de couleur, l'Image est ensuite transformée en sf::Texture, puis en sf::Sprite, afin d'être découpée et collée dans un tableau.
Et l'ennui, c'est que je bug à la destruction de TextureSprite, une fois que SpriteSprite est déclarée et remplis avec la texture.

Et d'autre part, si quelqu'un à une idée pour fais moins compliqué, je suis preneur!

Merci d'avance.

4
Général / Blocage sur de la conversion de code de la v1.6 à v2.0
« le: Février 25, 2013, 11:28:14 pm »
Salut à tous.

Je bosse actuellement sur de l'animation en sfml, genre animer un sprite. J'ai fais quelques recherches sur le net, et je suis tombé sur ça http://www.sfml-dev.org/wiki/fr/sources/frame_anim_animated .

L'ennui, c'est que c'est en SFML 1.6, et que je bosse avec la version 2.0. J'ai presque tout converti, sauf un petit bout de code qui me résiste, dans la class Frame.

J'essaye divers passage par référence ou pointeur, mais j'ai toujours des erreurs =/

Frame.h

#ifndef FRAME_HPP_INCLUDED
#define FRAME_HPP_INCLUDED

#include <SFML/Graphics.hpp>

// Une Frame est composée d'un pointeur sur une image, d'un SubRect et d'une couleur
// La couleur par défaut d'une Frame est le blanc.
class Frame
{
    public:
    // Par défaut
    Frame(const sf::Color& newColor = sf::Color::White);

    // Par copie
    Frame(const Frame& Cpy);

    // Texture et Rect
    Frame(sf::Texture& newTexture, const sf::Rect<int>& newRect, const sf::Color& newColor = sf::Color::White);

    // Texture (Le Rect est au dimension de l'image)
    Frame(sf::Texture& newTexture, const sf::Color& newColor = sf::Color::White);

    // destructeur
    virtual ~Frame();

    // Accès public à l'image, au Rect et à la couleur
    sf::Texture& texture;

    sf::Rect<int> rect;

    sf::Color color;
};

#endif // FRAME_HPP_INCLUDED
 

Frame.cpp

#include "Frame.h"

// Par défaut
Frame::Frame(const sf::Color& newColor)
{
    texture = NULL;
    color = newColor;
}

// Par copie
Frame::Frame(const Frame& Cpy)
{
    texture = Cpy.texture;
    rect = Cpy.rect;
    color = Cpy.color;
}

// Texture et Rect
Frame::Frame(sf::Texture& newTexture, const sf::Rect<int>& newRect, const sf::Color& newColor)
{
    texture = newTexture;
    rect = newRect;
    color = newColor;
}

// Texture (Le Rect est au dimension de l'image)
Frame::Frame(sf::Texture& newTexture, const sf::Color& newColor)
{
    sf::Sprite sprite(newTexture);
    rect = sprite.getTextureRect();
    color = newColor;
}

// destructeur
Frame::~Frame()
{

}
 

Merci d'avance.

5
Général / Crash systématique de l'exécutable
« le: Décembre 09, 2012, 11:19:47 pm »
Décidément, c'est pas mon jour ^^

J'ai effectué un passage de la 1.6 à la 2.0, mais impossible de lancer l'exécutable! Tout plante systématiquement, rien à faire.

Je file le code (basique de chez basique, je débute)

#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <iostream>
#include <sstream>
#include "define.h"
#include "fonts.h"

using namespace std;

int main()
{
    // Calcul FPS
    sf::Clock clock;
    sf::Time elapsed1 = clock.getElapsedTime();

    // Sprites test pour déplacement
    sf::Texture Texture_Left;
        if (!Texture_Left.loadFromFile("sprites/left.png"))
                std::cout << "Erreur du chargement de left.png" << std::endl;
        else
                std::cout << "Chargement réussi de left.png" << std::endl;

    sf::Sprite Left(Texture_Left);

    sf::Texture Texture_Right;
        if (!Texture_Right.loadFromFile("sprites/right.png"))
                std::cout << "Erreur du chargement de right.png" << std::endl;
        else
                std::cout << "Chargement réussi de right.png" << std::endl;

    sf::Sprite Right(Texture_Right);

    sf::Texture Texture_Jump;
        if (!Texture_Jump.loadFromFile("sprites/jump.png"))
                std::cout << "Erreur du chargement de jump.png" << std::endl;
        else
                std::cout << "Chargement réussi de jump.png" << std::endl;

    sf::Sprite Jump(Texture_Jump);

    //Sprite du background
    sf::Texture Background;
        if (!Background.loadFromFile("background/Sundown.png"))
                std::cout << "Erreur du chargement de Sundown.png" << std::endl;
        else
                std::cout << "Chargement réussi de Sundown.png" << std::endl;

    // Chargement de l'écran de pause
    sf::Texture Pause_Screen;
        if (!Pause_Screen.loadFromFile("background/Pause.png"))
                std::cout << "Erreur du chargement de Pause.png" << std::endl;
        else
                std::cout << "Chargement réussi de Pause.png" << std::endl;

    // Police d'écriture Visitor
    sf::Font Visitor;
        if (!Visitor.loadFromFile("font/visitor.ttf"))
                std::cout << "Erreur du chargement de Visitor.ttf" << std::endl;
        else
                std::cout << "Chargement réussi de Visitor.ttf" << std::endl;

    // Création de la fenêtre principale
    sf::RenderWindow App(sf::VideoMode(800, 600), "SFML Graphics");



        // Début de la boucle de rendu
while (App.isOpen())
    {

        //Affichage des IPS
        App.setFramerateLimit(60);
        sf::Time frameTime = clock.restart();
        float framerate = 1 / (frameTime.asMilliseconds() * 0.001);
        std::ostringstream oss;                             //
        oss << framerate;                                   // Conversion des IPS en string pour affichage
        sf::Text FPS_affichage (oss.str(), Visitor, 50);  //

        //Progression des events
        sf::Event Event;
        while (App.pollEvent(Event))
        {
            if (Event.type == sf::Event::Closed)        // Fermeture de la fenêtre via la croix
                App.close();

            if (sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))   // Fermeture de la fenêtre via escape
            {
                App.close();
            }


// Affichage des IPS lors de la pression de F1
           if(sf::Keyboard::isKeyPressed(sf::Keyboard::F1))
            {
                App.draw(FPS_affichage);
            }

// Fermeture des IPS lors de la pression de F2
            if(sf::Keyboard::isKeyPressed(sf::Keyboard::F2))
            {
                App.clear();
            }


/* Event ecran de pause
            if(sf::Keyboard::isKeyPressed(sf::Key::P))
            {
                App.clear();
                App.Draw(Pause_Screen);
            }
*/


            }

            App.display();

        }



    }

 

P.s: J'ai une carte graphique Ati, drivers à jour.

6
Général / Erreur de compilation dans Joystick.cpp
« le: Décembre 09, 2012, 08:17:47 pm »
Salut à tous.

Je tente depuis 2 jours d'installer la version 2.0 de la SFML sous Ubuntu 12.10 (quantal)

Je suis passé par le tuto de la Doc officielle d'Ubuntu (Ici)
Et au lancement du make dans le dossier sfml/branches/sfml2, j'obtiens l'erreur suivante :

/home/simon/sfml/branches/sfml2/src/SFML/Window/Linux/Joystick.cpp: In member function 'sf::priv::JoystickState sf::priv::Joystick::UpdateState()':
/home/simon/sfml/branches/sfml2/src/SFML/Window/Linux/Joystick.cpp:99:62: error: 'read' was not declared in this scope
make[2]: *** [src/SFML/Window/CMakeFiles/sfml-window.dir/Linux/Joystick.cpp.o] Error 1
make[1]: *** [src/SFML/Window/CMakeFiles/sfml-window.dir/all] Error 2
make: *** [all] Error 2
 

Merci d'avance ;)

Pages: [1]
anything