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

Pages: [1]
1
Général / Compilation SFML statique
« le: Juillet 03, 2017, 09:37:37 pm »
Bonjour !  ;D

Je suis sur Windows et je cherche à compiler mon programme en liant SFML de manière statique.

La compilation se passe à merveille. Seulement, lorsque je lance mon programme, seule la fenêtre de console s'affiche, rien d'autre. Mais où est donc ma fenêtre ?  :o Quand je liait SFML dynamiquement ma fenêtre s'affichait sans aucun soucis.

Voici mon makefile :

CXXFLAGS = -DSFML_STATIC  -ISFML/include/ -std=c++14 -c

SFMLLIB = -LSFML/lib/ -lsfml-graphics-s -lsfml-window-s -lsfml-audio-s -lsfml-system-s -lopenal32 -lvorbisfile -lvorbisenc -lvorbis -logg -lFLAC -ljpeg -lfreetype -lgdi32 -lopengl32 -lwinmm

OBJECTS = main.o Snake.o Inputs.o FoodPoints.o Point.o Random.o SoundSystem.o TileBackground.o ScoreSystem.o Gui.o

CCXX = g++

all : $(OBJECTS)
        $(CCXX) $(OBJECTS) $(SFMLLIB) -o snake

main.o : src/main.cpp
        $(CCXX) $(CXXFLAGS) src/main.cpp

Snake.o : src/Snake.cpp
        $(CCXX) $(CXXFLAGS) src/Snake.cpp

Inputs.o : src/Inputs.cpp
        $(CCXX) $(CXXFLAGS) src/Inputs.cpp

FoodPoints.o : src/FoodPoints.cpp
        $(CCXX) $(CXXFLAGS) src/FoodPoints.cpp

Point.o : src/Point.cpp
        $(CCXX) $(CXXFLAGS) src/Point.cpp

Random.o : src/Random.cpp
        $(CCXX) $(CXXFLAGS) src/Random.cpp

SoundSystem.o : src/SoundSystem.cpp
        $(CCXX) $(CXXFLAGS) src/SoundSystem.cpp

TileBackground.o : src/TileBackground.cpp
        $(CCXX) $(CXXFLAGS) src/TileBackground.cpp

ScoreSystem.o : src/ScoreSystem.cpp
        $(CCXX) $(CXXFLAGS) src/ScoreSystem.cpp

Gui.o : src/Gui.cpp
        $(CCXX) $(CXXFLAGS) src/Gui.cpp

clean :
        rm snake *.o
 

J'ai entièrement fait mon projet sous Linux et cherchant à le distribuer sous Windows au plus vite, j'ai trouvé sur internet un standalone pour Windows de la commande make. Peut-être est-ce utile de le préciser ? Sachant que je ne vois pas du tout à quel niveau le problème se situe  :-\


Merci d'avance !  8)

2
Graphique / sf::View et monde déformé
« le: Février 26, 2015, 04:42:57 pm »
Bonjour,  :)

J'ai du mal à comprendre le comportement bizarre que j'obtient lorsque je soumet l'application à une vue "neutre",
appelée avec le constructeur par défaut...
Lorsque je ne met pas de sf::View, tout va bien, et qu'en j'en met, tout est "aplatit".
Je ne comprend pas ce comportement, j'ai utilisé différents constructeurs avec les bons paramètres, toujours le même problème.

Merci d'avance...

3
Graphique / Ordre de dessin avec sprites et vertexarrays
« le: Février 24, 2015, 07:54:57 pm »
Bonjour à tous!

Allez, pour aller droit au but, dans mon système isométrique:
  • La carte est composée de layers, un par étage, un layer étant un sf::VertexArray;
  • Les objets de map sont dessinés entre chaque bon étage, et doivent être intercalés derrières les tuiles situées devant eux, etc;

J'expérimente actuellement une méthode pour dessiner mon objet entre 4 vertices (1 tuile).
En gros, j'aimerai effectuer dans l'ordre le dessin de:
  • La partie du layer qui ne cache pas l'objet
  • L'objet
  • La partie du layer qui cache l'objet

Ce à l'aide de cette fonction. (Ne vous préoccupez pas de la re-déclaration du sprite à chaque frame, des valeurs brutes, tout cela n'est pas encapsulé mais le sera: pour l'instant c'est juste un test) :
void Layer::draw(sf::RenderTarget &target, sf::RenderStates states) const
{
    sf::Texture tex;
    tex.loadFromFile("objet.png");

    sf::Sprite sprite;
    sprite.setTexture(tex);
    sprite.setPosition(410, 300); //La position appropriée pour que l'objet soit sensé être caché

    states.transform *= getTransform();
    states.texture = &m_texture;

    if(m_layer==1) // Si le layer actuel est le n°1, alors on doit se charger de dessiner l'objet entre 2 tuiles
    {
        target.draw(&m_vertices[0], 396, sf::Quads, states); // Les 99 premières tuiles
        target.draw(sprite); //L'objet
        target.draw(&m_vertices[396], 4, sf::Quads, states); //La dernière tuile, qui doit cacher l'objet
    }
    else //Autrement, on ne se préoccupe pas de l'objet, on dessine tout le layer d'un coup
    {
        target.draw(m_vertices, states);
    }
}
 
Ici, pour info, mon personnage est positionné entre la 99ème tuile et la dernière, soit dans la dernière ligne de droite du layer.

Seulement voilà le problème: le sprite de l'objet n'est pas caché derrière ce dessin:
target.draw(&m_vertices[396], 4, sf::Quads, states);
 
Et je ne comprend mais vraiment pas pourquoi:
  • Erreur de logique de ma part, auquel cas je vous laisse tranquille et je vais repenser mon système?;
  • Qu'importe l'ordre d'appels des draw(), les entrailles d'SFML dessinent les sf::Drawable "type" par "type": sprite d'un coup, etc... ?

Merci d'avance.  ;)

4
Graphique / Crash avec target.draw(*sprite, states)
« le: Février 08, 2015, 10:42:23 am »
Bonjour!

Me revoilà aussi tôt, car j'ai un problème que je n'arrive pas à fixer, même après plusieurs coups de debugger. J'ai cherché pendant 2 heures d'où le problème pourrait venir, et je n'en ai aucune idée. Dans ma classe Chunk héritée de sf::Drawable, j'ai cette fonction:

void Chunk::draw(sf::RenderTarget &target, sf::RenderStates states) const
{
    states.transform *= getTransform();
    states.texture = &m_texture;
    target.draw(m_vertices, states);
    target.draw(*m_objectManager->m_objects[0]->m_sprite, states);
}

Et le programme crash arrivé à cette ligne:
target.draw(*m_objectManager->m_objects[0]->m_sprite, states);

Où m_objectManager->m_objects[0]->m_sprite est un pointeur vers un sf::Sprite. J'ai bien vérifié et ce n'a pas l'air d'être une erreur de pointeur, m_sprite est valide...

Merci de votre aide.

5
Graphique / Isométrique & gestion d'objets de map (entités)
« le: Février 05, 2015, 04:52:49 pm »
Bonjour à tous!  :)

Comme certains le savent peut-être, je travaille depuis 5 mois sur la conception d'un simple moteur isométrique, et beaucoup de fonctionnalités sont déjà prêtes, vous pouvez y jeter un oeil ici:  ;) https://github.com/AnselmeClergeot/Fiso-Engine

J'ai commencé à développer la dernière fonctionnalité primordiale: la gestion d'entités (des objets du monde à cacher derrière les tuiles situées devant eux).

La carte peut être composée de plusieurs étages, chacune étant composée du même nombre de sf::VertexArray (chunks).

Sachant que mes cartes sont composés de sf::VertexArray, il m'est impossible de dessiner directement entre deux tuiles l'objet en question (étant un sf::Sprite). J'ai réfléchis à une méthode : chaque objet redessine les 3 tuiles étant devant lui par-dessus les tuiles d'origine. Ainsi, il se retrouve caché derrière les tuiles qui sont sensés le cacher...

Seulement, cette solution à un gros inconvénient puisque les tuiles redessinées pour cacher l'objet devraient logiquement être cachés derrière les tuiles plus proches... Or ce n'est pas le cas puisque les tuiles de "cachement" sont redessinées par dessus toutes les autres tuiles et se retrouvent ainsi devant les plus proches... Vous avez compris le problème que cela pose?  :-\

Je fais donc appel à la communauté pour savoir quels techniques je pourrait utiliser pour gérer cette fonctionnalité, ou comment palier le problème en question, bien que j'ai comme l'impression que ma méthode sois un peu "ingérable"  :P

Merci d'avance!  ;)

6
Général / Qt Creator + SFML - fenêtre absente
« le: Novembre 03, 2014, 06:23:34 pm »
Bonjour!

J'ai décidé de changer d'IDE et de passer à QtCreator, que l'on m'a conseillé. Il me semble que j'ai réussi à linker SFML sur mon application, mais lorsque j'exécute celle-ci via QtCreator, rien ne se passe, aucune fenêtre n’apparaît. Lorsque j'ordonne de stopper l'exécution de mon programme, ces informations s'affichent:
Le programme s'est terminé subitement.
C:\Users\Anselme\Projets Qt\build-FisoEngine-Desktop_Qt_5_3_0_MinGW_32bit-Debug\debug\FisoEngine.exe a planté
 
Voici mon fichier .pro:
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt

HEADERS += \
    Map.h \
    MapManagement.h \
    DrawableMap.h \
    Chunk.h \
    MapLoader.h \
    TileAnimation.h

SOURCES += main.cpp \
    Map.cpp \
    MapManagement.cpp \
    DrawableMap.cpp \
    Chunk.cpp \
    MapLoader.cpp \
    TileAnimation.cpp



INCLUDEPATH += C:\SFML\include
LIBS += C:\SFML\lib\libsfml-system.a \
    C:\SFML\lib\libsfml-window.a \
    C:\SFML\lib\libsfml-graphics.a \
    C:\SFML\lib\libsfml-audio.a \
    C:\SFML\lib\libsfml-network.a

include(deployment.pri)
qtcAddDeployment()



 
J'ai suivi le tutoriel de Laurent en ce qui concerne de linker SFML sur QtCreator, ai recommencé la manip' à maintes reprise. J'ai également fait beaucoup de recherches sur Google, et sans plus...
Je n'ai aucune idée à quel niveau le programme survient: problème de linkage, d'exécution/dll? Pour infos, voici la liste des dll présent dans le dossier d'exécution:
_libgcc_s_dw2-1.dll
_libsndfile-1
_libstdc++-6
_libwinpthread-1
_openal32
Ainsi que tous les dll sfml-graphics, system, etc...
 

Merci d'avance.  :D

7
Graphique / Problème avec héritage de sf::Transformable
« le: Octobre 27, 2014, 08:52:00 pm »
Bonjour!

Je suis confronté à un problème que je ne comprend pas trop:
J'ai fait hériter une classe de sf::Transformable: je peux faire appel à setPosition() sur celle-ci mais lorsque je veux faire appel à getPosition(), on me dis classe maClasse has no member named getPosition! Pourtant j'ai bien vérifié la doc.

Merci.

8
Système / Brusque lags avec thread & gérance de temps
« le: Octobre 18, 2014, 02:32:17 pm »
Bonjour!

Dans mon programme, j'utilise un thread qui gère une fonction qui s'occupe d'exécuter une instruction toutes les x millisecondes, et ce jusqu'à ce que l'utilisateur stop le thread. Seulement, j'observe graphiquement de brusques latences, qui apparaissent puis disparaissent de manière totalement aléatoire... J'ai tout d'abord pensé à réduire la fréquence taux d'appel de l'instruction en fonction, mais même toute les 10 secondes, il y a le même taux de latence qu'avec 10 millisecondes. Voilà mon code:

void Map::anime()
{
 m_clock.restart();
        do
        {
            if(m_clock.getElapsedTime() > sf::milliseconds(m_animationSpeed))
            {
                m_clock.restart();
                if(m_animationX<m_maxAnimationX-1) m_animationX += 1;
                    else m_animationX = 0;

                for(int z=0; z<m_height; z++)
                    for(int y=0; y<m_width; y++)
                        for(int x=0; x<m_width; x++)
                {
                    if(m_animationList[getIndexAtCase(x, y, z)]>1 && m_animationX<m_maxAnimationX) setCase(x, y, z, getIndexAtCase(x, y, z));
                }
            }
        } while(!m_stop);
}
 

Ce code s'occupe en fait d'animer des tuiles de la carte en changeant les texcords en question de mes sf::VertexArray.
Merci d'avance!

9
Graphique / Dimension de fenêtre et baisse de fps?
« le: Octobre 05, 2014, 03:02:35 pm »
Bonjour à tous!

J'ai remarqué quelque chose d'étrange (et embêtant :-\) en ce qui concerne la taille de la fenêtre et les performances du programme. Lorsque je déclare une fenêtre de taille 640*480, mes sprites se déplacent très très vite (je ne gère pas le temps et ne limite pas les fps pour bien observer) alors que lorsque je déclare une fenêtre relativement grande (1366*768) mes sprites se déplacent extrêmement lentement, j'en déduis donc une baisse des fps/performances. Ais-je raison, ou cela vient-il de mon programme? Dans le premier cas, comment pallier ce "problème"?

Merci.  :)

10
Graphique / Ordre de définition de quads d'un vertexarray
« le: Octobre 03, 2014, 05:46:59 pm »
Bonjour!

J'aimerais savoir si l'ordre de définitions des quads d'un vertexarray modifie alors l'affichage. Par exemple, si je définis des quads dans l'ordre a, b, c, tous à la même position sur l'écran, on ne verra que le c?

Pour tout vous dire, je gère une carte isométrique avec des vertexarray mais peut importe l'ordre de ma boucle, l'ordre d'affichage est tout le temps le même. Comment modifier l'ordre d'affichage ? Est-ce possible lors des définitions?

11
Graphique / VertexArray & Isometric mapping
« le: Août 31, 2014, 09:23:34 pm »
Bonjour!

Me revoilà aujourd'hui pour reparler de VertexArray  ::)^
Sachant que je fais du mapping isometrique, je dois changer l'algorithme de définitions des sommets de chaque quad. J'ai fait cela:
quad[0].position = sf::Vector2f((m_floorSize)*(j-i), (m_floorSize*(j+i)/2));
quad[1].position = sf::Vector2f((m_floorSize)*(j-i+1), (m_floorSize*(j+i)/2));
quad[2].position = sf::Vector2f((m_floorSize)*(j-i+1), (m_floorSize*(j+i+2)/2));
quad[3].position = sf::Vector2f((m_floorSize)*(j-i), (m_floorSize*(j+i+2)/2));


quad[0].texCoords = sf::Vector2f(tu * m_tileSize.x, tv * m_tileSize.y);
quad[1].texCoords = sf::Vector2f((tu + 1) * m_tileSize.x, tv * m_tileSize.y);
quad[2].texCoords = sf::Vector2f((tu + 1) * m_tileSize.x, (tv + 1) * m_tileSize.y);
quad[3].texCoords = sf::Vector2f(tu * m_tileSize.x, (tv + 1) * m_tileSize.y);
 
J'ai mis entre les crochets de définition des positions l'algorithme de transformation de coord. cartesiennes en isométrique. Mais je ne comprend pas pourquoi j'obtiens ce résultat!

Merci d'avance.


12
Général / TileMap avec VertexArray & une texture par tile
« le: Août 29, 2014, 06:53:25 pm »
Bonjour!

Aujourd'hui j'essaie de faire une tilemap à l'aide d'un sf::VertexArray. Seulement, j'aimerais savoir comment faire pour utiliser une texture par tuile et non pas une texture contenant toutes les tuiles. Comment, comme précisé dans le tutoriel, créer un VertexArray par texture? Deuxième question: pourrais-je récupérer les dimensions de la texture contenu dans ce vertexarray? Merci

13
Graphique / Carré blanc avec sf::Texture en tant que membre
« le: Août 24, 2014, 06:28:05 pm »
Bonjour!

Aujourd'hui je vais en agacer certains en posant une question que beaucoup d'autres ont déjà posés. Seulement, après plusieurs forums visités, je n'ai toujours pas repéré d'ou provenait mon erreur.
Voilà mon problème: j'ai une classe Tile qui à deux attributs: m_texture et m_shadowTexture. Elle possède deux méthodes qui retournent les deux derniers attributs cités. Seulement, quand je veux l'utiliser avec sprite.setTexture(tile.getTexture()), j'obtiens un carré blanc. Voici mon code:

TILE.H
#ifndef TILE_H
#define TILE_H
#include<SFML/Graphics.hpp>
#include <iostream>
class Tile
{
    public:
        Tile();
        void setTexture(std::string path);
        void setShadowTexture(std::string path);
        sf::Texture getTexture() const;
        sf::Texture getShadowTexture() const;
    private:
    sf::Texture m_texture, m_shadowTexture;

};

#endif // TILE_H
 
TILE.CPP
#include "Tile.h"
using namespace sf;

Tile::Tile() : m_texture(), m_shadowTexture()
{}
void Tile::setTexture(std::string path)
{
    m_texture.loadFromFile(path);
}
void Tile::setShadowTexture(std::string path)
{
    m_shadowTexture.loadFromFile(path);
}
Texture Tile::getTexture() const
{
    return m_texture;
}
Texture Tile::getShadowTexture() const
{
    return m_shadowTexture;
}

 
et là une partie du code que j'utilise pour afficher le tout:
sprite.setTexture(m_tileList[m_configuration[z][y][x]].getTexture());
 
Merci d'avance à ceux qui pourront m'éclairer.

14
Graphique / Trait vertical sous une image :/
« le: Août 08, 2014, 09:59:01 am »
Bonjour!

Je fais mon entrée sur le site! :) Je pense que rien de mieux que le forum officiel pourra m'aider dans les problèmes auquel je serai confronté. Bref, je vous propose une petite image que j'ai joint afin que vous visualisiez mon premier, assez embêtant. Sur l'image, chaque tuile est découpée en deux parties avec setTexture() et dessinée à deux moments différents. Mais je ne sais vraiment pas d'ou vienne ces traits verticaux qui sont en fait le prolongement du bas de mon sprite. J'ai pensé au début que je découpait plus grand que l'image, mais non... Je ne vois vraiment pas d'ou cela vient. Quelqu'un pourrait il m'aider?  :'(

Merci d'avance, puis bonnes vacances!  ;D

AnselmeSfml.

Pages: [1]