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

Pages: [1]
1
Suggestions de nouvelles fonctionnalités / allocateur SFML
« le: Novembre 22, 2012, 08:51:49 pm »
Hello
Si je ne m'abuse SFML utilise l'allocateur STL par défaut pour tous les objets non?
Est-ce que ça serait possible / utile de pouvoir utiliser des allocateurs customs avec les objets SFML?
Par ex pour forcer la création des gros objets à ce faire à un endroit précis ou autre

2
Général / gestion des entités dans un jeu
« le: Novembre 08, 2012, 05:38:02 pm »
Bonjour,

quelle est selon vous la meilleure méthode pour gérer des "entités" dans un jeu?
En fait je cherche à connaitre différentes méthodes possibles, car ce que j'ai vu me parait toujours bof.
Par entité j'entends par exemple les NPCs, les lumieres, les objets au sol etc (là je pensais plus à un RPG 2D)

La solution de base que j'utilisais était juste d'avoir une classe abstraite Entity d'avoir des méthodes abstraites genre Update(), Draw(), etc
L'intérêt c'est que je peux stocker dans un même container toutes les entités et appeller par ex la méthode update à chaque frame (en gros)
Par contre ce système va ammener à des hierarchies de classe de folie et à des tonnes de d'appels de fonctions virtuelles.
L'autre idée que j'ai vue ici c'est d'utiliser des composants, ie chaque entité possède en membre des "composants" qui sont des modules ré-utilisable par chaque entité sans hiérarchie. Mais dans ce cas je vois pas trop comment se gère l'update et l'affichage de mes entités (par exemple)

Bref, quelle est selon vous la meilleure méthode? Sinon est-ce qu'il y a des alternatives?

merci!

3
Graphique / sprite.draw qui prend du temps
« le: Septembre 09, 2012, 01:39:52 am »
Hello
j'ai une carte divisée en 4x4 sf::RenderTexture

Selon la position de la caméra, je calcule quels sont les sf::RenderTexture qui ont besoin d'être affichés, et ensuite pour chacune d'entre elles, je calcule quelles tiles sont visibles, et puis je les dessine sur la bonne sf::RenderTexture (si elle n'ont pas encore été dessinées dessus). A la fin je ne dessine sur le target final que les sf::RenderTexture.
Du coup je remplis au fur et à mesure mon sf::RenderTexture avec les tiles de la carte.
Cependant j'ai un problème de perf quand je dessine pour la 1ere fois sur un sf::RenderTexture donné, ça me prend 300 ms alors que les autres affichages de tile prennent 1 ms.
Une idée d'où ça vient? Je vois que je passe dans ce cas par RenderTextureImplFBO::activate(true) mais je pige pas ce qui prend tout ce temps...

4
Suggestions de nouvelles fonctionnalités / sf::Rect::Intersect
« le: Septembre 07, 2012, 11:01:07 pm »
Salut
on ne peut pas faire d'intersection entre un sf::Rect<int> et sf::Rect<float>
On pourrait pas faire un:
template <typename T1, T2, T3>
bool Rect<T1>::intersects(const Rect<T2>& rectangle, Rect<T3>& intersection) const

T2 et T3 sont inférés, et on appelle en faisant:
myRect.intersects<float>(myRect2);

De le même façon on pourrait définir des trucs pour pouvoir convertir facilement (automatiquement) un Rect<T> en Rect<T2>

5
Graphique / pb d'utilisation openGL
« le: Mai 29, 2012, 12:04:08 am »
Hello
alors je fais quelques tests avec OpenGL:
int main()
{
        sf::RenderWindow window(sf::VideoMode(800, 600), "SFML Views");
         
 sf::Vertex SFMLvertices[] =
 {
     sf::Vertex(sf::Vector2f(  0,   0), sf::Color::Blue, sf::Vector2f( 0,  0)),
         sf::Vertex(sf::Vector2f(  0, 100), sf::Color::Yellow, sf::Vector2f( 0, 40)),
     sf::Vertex(sf::Vector2f(100, 100), sf::Color::Red, sf::Vector2f(40, 40)),
     sf::Vertex(sf::Vector2f(100,   0), sf::Color::Green, sf::Vector2f(40,  0))
 };

 while(1) {
         window.clear();
         window.draw(SFMLvertices, 4, sf::Quads); // <--- ou pas
         
glMatrixMode(GL_MODELVIEW);
        glPushMatrix();

        glTranslatef(10, 10, 0);

        glColor4ub(100, 0, 0, 255);

        // Disable texturing
        glDisable(GL_TEXTURE_2D);

        // Draw the colored rectangle
        glBegin( GL_QUADS );
        glVertex2f(0,     0);
        glVertex2f(0,     40);
        glVertex2f(40, 40);
        glVertex2f(40, 0);
        glEnd();


        glMatrixMode(GL_MODELVIEW);
        glPopMatrix();


         window.display();
 }

        return EXIT_SUCCESS;
}

Le carré s'affiche bien quand je ne dessine pas le VertexArray, mais quand je le dessine, c'est affiché à l'envers.  (haut<->bas)
Donc ma question c'est : pourquoi? A vrai dire j'aimerai comprendre comment tout ça fonctionne et si le pb vient du code pour afficher le carré ou d'autre chose (j'ai repris ce code d'ailleurs). Je me doute que le pb vient du fait que l'origine de SFML est en haut à gauche, et de OpenGL en bas à gauche, comment ça fonctionne tout ça?

merci!

6
Projets SFML / Quelle library add-hoc pour SFML?
« le: Mai 26, 2012, 01:17:55 am »
Hello
Je vois qu'il y a pas mal de bibliothèques qui se greffent à SFML développées ici et qui sont pas mal (Thor , Zoost etc).
Est-ce que quelqu'un aurait d'autres idées de fonctionalités annexes à rajouter à SFML via une petite library? Je chercher à m'améliorer en C++ et à coder qqche en rapport avec SFML mais la plupart des idées que j'avais on déjà été implémentées dans Thor ou autre....

7
Général / Tableau fixe de sprites
« le: Mai 18, 2012, 02:44:32 pm »
Salut

J'ai une question d'ordre général sur l'optimisation et je voudrais votre avis.
En gros dans mon moteur de RPG 2D le jeu est divisé en maps. Un nombre arbitraire de maps peuvent être à l'écran à la fois (si on dézoome à fond).
Chaque map a un nombre fixe de cases (60x60 = 3600), et actuellement chaque case possède les éléments suivants:
- pointeur sur un objet tile qui me donne les propriétés de la case (collision etc)
- sf::sprite pour afficher la case

Le pb est que même si sf::sprite est léger, j'arrive rapidement à ~150 Mo de mémoire bouffée par tous les sf::sprite.

Donc à votre avis comment faire pour réduire la taille totale prise par la mémoire? J'ai pensé créer une nouvelle classe qui hérite de sf::drawable mais pas de sf::transformable, vu que c'est de là qui vient la plus grosse partie de l'objet

8
Salut
Est-ce qu'il est prévu d'implémenter un jour
sf::Image& sf::Image::operator=(sf::Image&& rhs)
?

Je pense que ça ferait gagner pas mal de perfs dans certains cas non? J'aillais proposer la même chose la même chose pour sf::Texture mais je sais pas si ça ferait gagner grand chose (enfin j'ai pas encore vu comment c'était implémenté).

Après c'est sûr que les compilo C++11 sont pas encore légion...


edit : pareil pour sf::Texture en fait, ça éviterait un appel à
LoadFromImage(copy.CopyToImage());
dans le constructeur

9
Projets SFML / moteur RPG 2D
« le: Avril 19, 2012, 10:19:31 pm »
Salut,
j'avais fait il y quelques mois un sujet avec une démo d'un RPG 2D. (cf http://www.sfml-dev.org/old-forum-fr/viewtopic.php?t=3913)
Vu que je ne pense pas continuer, ça interesse des gens si je poste les sources?
Pour info, pour l'instant le moteur est basé sur une tilemap et genere le monde selon un quadrillage de tiles (classique quoi).
Il gère:
>scrolling et déplacement des persos / NPC pixel par pixel
> gestion "transparente" du déplacement entre maps adjacentes
> zoom / dezoom dynamique
> cycle jour / nuit et éclairage dynamique

Bref ça interesse quelqu'un? Je ne poste pas direct mes sources vu qu'il faut que je nettoie tout ça


10
Fenêtrage / sf::event et focus
« le: Mars 29, 2012, 11:00:34 pm »
Salut,
est-ce qu'il est possible de faire fonctionner les events lorsque l'on a pas le focus sur la fenetre SFML?
Si je met un breakpoint dans une boucle while (App.PollEvent(Event)), je ne break pas lorsque la fenêtre SFML n'a pas le focus... c'est possible de contourner ça d'une façon ou d'une autre?

merci :)
         

Pages: [1]
anything