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.


Messages - CouteauBleu

Pages: [1]
1
Projets SFML / Re : MOBA 2D
« le: Mai 07, 2013, 03:48:53 pm »
Montre des images, une démo, alors ! Même si c'est moche, l'important c'est de voir à quoi le gameplay ressemble.

btw : le prends pas mal, mais à moins que le scénario soit vraiment original, ça n'intéresse personne dans le cadre du recrutement. Tu peux dire "c'est sur une planète très lointaine, il y a plusieurs espèces rassemblées en deux empires, celui des robots pacifistes et celui des êtres vivants agressifs, ils sont attaqués (séparément) par des aliens dévoreurs de mondes". Ça prend deux lignes et tout le monde comprend, il n'y a pas besoin d'en écrire plus :)

2
Projets SFML / Shoot'hem uuuuuuuuuuuuup
« le: Août 08, 2012, 01:58:16 pm »
Salutations messieurs (et les deux filles, au fond)

Voilà, après avoir un peu galéré pour installer SFML, je me suis lancé dans un moteur de jeu. Ce moteur a pour but de créer un shoot'hem up, mais devrait être réutilisable pour à peu près n'importe quel type de jeu 2D (plateforme, RPG ...).

Le jeu en lui même avance pas mal, je devrais avoir une version jouable sous peu (le temps de debugger et d'ajouter deux-trois fonctionnalités). C'est le moteur qui pose problème. Il est assez imposant en lignes de codes (normal), mais ce qui m'embête, c'est que j'ai l'impression de l'avoir mal structuré : j'ai beaucoup de mal à apporter des modifications sans modifier tout plein de trucs, il est assez peu flexible.

Donc, j'aimerais vous le soumettre (seulement les headers, en fait, sinon ça fera trop de lecture :p) pour que vous me disiez, éventuellement, si j'ai merdé quelque part. Je suis encore débutant, après tout, donc ...

Entrees/TableauEntrees.h
enum Touche
{Desactivee, Pressee, Activee, Lachee};

class MajTouche //foncteur
{
    public :
    void operator()(std::pair<const sf::Mouse::Button, Touche>& x);
    void operator()(std::pair<const sf::Keyboard::Key, Touche>& x);
};


class Entrees
{
    public :

    Entrees(sf::Window* fenetre = 0);
    bool fini();
    sf::Vector2f curseur();
    void MAJ();

    std::map<sf::Mouse::Button, Touche>& boutonsSouris();
    std::map<sf::Keyboard::Key , Touche> boutonsClavier();

    protected :
// des variables
};

Graphique/AfficheurObjets.h
class AfficheurObjets
{
    public :

    AfficheurObjets(sf::RenderTarget* cible);

    void afficher(const ObjetAffichable& objet, const ParametresAffichage& para);
    void afficher(const ObjetAffichable& objet);

    void effacer();
};

Graphique/ObjetAffichable.h
class ObjetAffichable // Interface d'objet affichable
{
    virtual const sf::Drawable& afficher() const = 0;
    virtual void MAJ() {}
};

Graphique/Sprite.h
class Sprite : public ObjetAffichable
{
    public :

    Sprite();
    Sprite(const sf::Texture& paraObjet);

    void attribuer(const sf::Texture& paraObjet);

    sf::Sprite& afficher();
    const sf::Sprite& afficher() const;

    void deplacer(const sf::Vector2f& distance);

    protected :

    private :

    sf::Sprite m_sprite;

};


Jeu/Physique/Mouvement.h
class Mouvement
{
    public :

    Mouvement( sf::Vector2f position = sf::Vector2f(0,0), sf::Vector2f vitesse = sf::Vector2f(0,0) );

    void MAJ();
    virtual void changerVitesse(sf::Vector2f nvitesse, bool relatif = false);

    sf::Vector2f position() const;
    sf::Vector2f vitesse() const;

    protected :
    void deplacer(sf::Vector2f nposition, bool relatif = false);
};

Jeu/Physique/ObjetPhysique
class ObjetPhysique : public Mouvement
{
    public :

    ObjetPhysique(sf::IntRect parametres = RECT_NUL,
                  sf::Vector2f position = POINT_NUL, sf::Vector2f vitesse = POINT_NUL);

    sf::IntRect boiteAbsolue() const;
    sf::IntRect boiteRelative() const;
    sf::Vector2f decalage() const;
    void aligner(bool reset);
};
bool testerCollision(const ObjetPhysique& objet1, const ObjetPhysique& objet2);

bool testerCollision(const sf::IntRect& rectangle1, const sf::IntRect& rectangle2);
bool testerCollision(const sf::Vector2f& rectangle1, const sf::IntRect& rectangle2);
inline bool testerCollision(const sf::IntRect& rectangle1, const sf::Vector2f& Point2);

Jeu/Emetteur.h
template <typename T>
class Emetteur
{
    public :
    virtual void attribuer(TableauVart<T>& ncible);
    virtual void creer(sf::Vector2f position) = 0;

    protected :
    TableauVart<T>& cible();
};

Jeu/Majable.h
class Majable //interface
{
    virtual void MAJ() = 0;
    virtual bool detruire() const = 0;
};

Jeu/VartAbs.h
class VartAbs : public Majable // encore une interface
{
    virtual void afficherDans(AfficheurObjets&) = 0;
};
/* Petite explication : sous ce nom qui ne veut rien dire se cache l'interface
de tous les objets de jeu. Pour être précis, de tous les objets qui sont mis
à jour à chaque frame et que l'on affiche juste après
*/

Jeu/Vart.h
class Vart : public VartAbs, public ObjetPhysique
{
    public :

    Vart(const ParaVart& para);
    Vart(const ParaVart& para, sf::Vector2f position);

    virtual void MAJ();
    virtual bool detruire() const;
    virtual void afficherDans(AfficheurObjets&);

    protected :
    virtual void detruireObjet();
};

Jeu/ParametresVart.h
class ParaVart
{
    public :

    ParaVart();
    ParaVart(const sf::Texture& nSprite, const sf::IntRect& nHitbox, const sf::Vector2f& nVitesse);

    void attribuer(const sf::Texture& nSprite, const sf::IntRect& nHitbox, const sf::Vector2f& nVitesse);
    void attribuer(std::istream& flux, std::map<std::string, Sprite>& tableauSprites);

    Sprite sprite() const;
    sf::IntRect hitbox() const;
    sf::Vector2f vitesse() const;
};

Jeu/TableauVarts.h
template <typename T = VartAbs>
class TableauVart : public VartAbs
{
    public :

    TableauVart();

    void ajouter(T* nvart);
    inline const std::vector< boost::shared_ptr<T> >& tableau() const;
    inline std::vector< boost::shared_ptr<T> >& tableau();

    inline boost::shared_ptr<T> objetN(unsigned short lequel);
    inline const boost::shared_ptr<T> objetN(unsigned short lequel) const;
    inline unsigned short taille() const;

    virtual void MAJ();
    virtual bool detruire() const;
    virtual void afficherDans(AfficheurObjets& cible);

    protected :
    void enlever(int lequel);
};
/* La classe dont je suis le plus fier. Elle stocke un vector de Varts et leur applique
les méthodes qu'on lui applique (ce qui permet notamment la récursivité)*/

Alea.h
class Alea
{
    public :
    Alea();
    int operator()(int maximum);
    int operator()(int minimum, int maximum);
};

Gestionnaire.h
class Gestionnaire
{
    public :

    Gestionnaire(Niveau* niveauJoue = 0, Entrees* tableauEntrees = 0, sf::RenderWindow* cible = 0);
    void attribuer(Niveau* niveauJoue, Entrees* tableauEntrees, sf::RenderWindow* cible);

    virtual void MAJ();
    virtual bool continuer();
};

Niveau.h
class Niveau : public VartAbs
{
    public :
    Niveau();
    virtual void attribuer(std::istream& chaineNiveau, Entrees* entrees) = 0;

    virtual void MAJ();
    virtual bool detruire() const;
    virtual void afficherDans(AfficheurObjets& fenetre);

    protected :
    void ajouter(VartAbs* ajout);
    virtual void finirJeu();
    Entrees* m_entrees; // use-a
};

Timer.h
class Chronometre
{
    public :

    Chronometre(int tempsDepart = 0, int tempsMax = 0, bool razAuto = true);

    void modifierTempsMax(int nTemps);
    void modifierTemps(int nTemps, bool limiter = false);
    virtual void razTemps();

    bool decrementer();

    inline int tempsMax() const;
    inline int temps() const;
};

Voilà, c'étaient tous les headers du moteur. Si vous avez des questions ou des conseils, hésitez pas :)

3
Discussions générales / Re : SFML 2.0 RC
« le: Juin 07, 2012, 03:48:56 pm »
Pourquoi la bibliothèque pour windows n'est-elle pas disponible en 64 bits ? :/

4
Général / Re : IDE à utiliser
« le: Avril 20, 2012, 08:22:01 pm »
Petite question au passage : avec un code tout bête consistant à inclure iostream, stdlib et SFML graphics, ouvrir une bête RenderWindow et renvoyer un EXIT_SUCCES, j'obtiens la série d'erreur suivante :

obj\Debug\main.o||In function `main':|
C:\Projets\Programmation\TestsJeux\Projet1\main.cpp|8|undefined reference to `__gxx_personality_sj0'|
C:\Projets\Programmation\TestsJeux\Projet1\main.cpp|8|undefined reference to `_Unwind_SjLj_Register'|
C:\Projets\Programmation\TestsJeux\Projet1\main.cpp|10|undefined reference to `_Unwind_SjLj_Unregister'|
C:\Projets\Programmation\TestsJeux\Projet1\main.cpp|9|undefined reference to `_Unwind_SjLj_Resume'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.0\..\..\..\libsfml-graphics-s-d.a(RenderWindow.o)||In function `RenderWindow':|
D:\dev\sfml\sdk\SFML-1.6\src\SFML\Graphics\RenderWindow.cpp|40|undefined reference to `sf::Window::Window()'|
D:\dev\sfml\sdk\SFML-1.6\src\SFML\Graphics\RenderWindow.cpp|43|undefined reference to `sf::Window::~Window()'|
D:\dev\sfml\sdk\SFML-1.6\src\SFML\Graphics\RenderWindow.cpp|40|undefined reference to `sf::Window::Window()'|

Et ainsi de suite. D'où cela vient-il ? :/

5
Projets SFML / Re : Contagion
« le: Avril 19, 2012, 07:49:33 pm »
Tu peux faire en sorte que, lorsqu'ils se heurtent à un mur, les zombies changent de direction. Où qu'ils évitent de se diriger vers un mur trop proche si ils n'ont pas de cible.

6
Général / Re : Re : IDE à utiliser
« le: Avril 19, 2012, 05:03:33 pm »
Google -> "MSDN C2275" -> http://msdn.microsoft.com/en-us/library/76c9k4ah(v=vs.71).aspx
'identifier' : illegal use of this type as an expressionEn gros, tu te la choppes quand tu essayes d'appliquer . ou -> sur un type et non une variable (ou une expression). Donc franchement, ceux qui concluent par "avec Code::Blocks [faudrait plutôt dire gcc] ça compile", n'ont rien compris.

Mh ... je dois confondre avec un autre code d'erreur ...
Je n'arrive pas à comprendre non plus cette erreur, soit dit en passant : elle survient lorsque j'utilise :: sur un namespace. Enfin, je vais réviser mon code.

Pour autant que je sache, non. Les versions Express gratuites n'expirent jamais.
Peut-être pas pris la bonne version de VS, mais j'en doute. Je verrai ça.

Sinon une note générale : les environnements du genre QtCreator et Code::Blocks peuvent tout à fait bosser avec le compilo et le debugger (avec plus ou moins de succès) de Visual C++.

[...]

Ca devrait le faire, plein de monde utilise ce combo. Si tu as du mal, et si tu utilises SFML 2, le tutoriel correspondant devrait être mis en ligne ce soir.

OK, merci :D
Comment on fait, pour utiliser le debugger intégré d'un IDE avec un autre IDE ?

7
Projets SFML / Re : Re : Xeenos [Jeu 2D]
« le: Avril 19, 2012, 01:00:06 pm »
Oui et non, J'ai fait une recherche sur google pour trouver la période que je chercher, et ensuite j'ai tablé au hasard dans la tranche trouvée :)
C'est ce que je voulais savoir. On a trop tendance à oublier que le moyen-âge est une période longue d'un millénaire comportant son lot d'innovations technologiques et de situations politiques qui ont énormément évolué.

(Alors, oui je l'accorde l'histoire est très bateau mais on ne change pas une équipe qui gagne)
Gaffe quand même, une histoire bateau est souvent une histoire inintéressante (il y a des exceptions), et une histoire inintéressante dans un RPG, ça fait un peu tâche. Sauf si tu joue sur le côté parodique, comme dans le résumé que je t'ai concocté :D

8
Projets SFML / Re : Contagion
« le: Avril 19, 2012, 12:53:03 pm »
Mon âme de fan de Hordes.fr est toute excitée devant cette ... expérience :)

Sinon, tu as pensé à faire en sorte que les humains essayent de se regrouper ? Ce pourrait être intéressant. Et sinon, pourquoi donner du pathfinding complexe aux zombies ? À ta place, je leur donnerai juste un algorithme simple pour les faire marcher au hasard, ignorer les humains qu'ils ne voient pas (car cachés par des murs) et éventuellement marcher tout droit quand ils perdent de vue un humain.

Ça doit consommer moins :)

9
Général / Re : IDE à utiliser
« le: Avril 19, 2012, 12:46:56 pm »
Laurent : d'après ce que j'en ai compris dans mes recherches, le code d'erreur C2275 est un code du C indiquant qu'on utilise un type invalide, qui ne doit pas exister en C++; la plupart de commentaires que j'ai lu sur cette erreur finissaient par "passe sur Code::Blocks et tu verras, ça compile", d'où mon désarroi :p

Sinon, je me plaignais du fait que VC++ 2010 expirait au bout d'un mois, mais je viens de m'apercevoir que VC 2008 aussi :/

Koryushin : qu'est-ce qui est le plus usine à gaz ? Utiliser un seul logiciel "préfabriqué" ou plein de logiciels pas forcément faits pour aller ensemble (enfi,, tant que c'est le même langage, j'imagine que c'est pas un problème ...). Sinon, j'utilise SFML 1.6, pas 2.0.

Lo-X : j'avais essayé une solution de type "j'utilise mon IDE préféré pour le codage et un autre pour le debugging", mais j'obtiens des résultats ... mitigés. Mais si vous avez des debuggers à me conseiller, je suis pas contre.

Bigz : j'avais déjà posté pour une aide de ce genre sur l'ancien forum. On m'avait répondu "Ca devrait marcher, mais mingw peut avoir des problèmes, essaie avec Visual".

Sinon, mine de rien, je poste pas après avoir essayé cinq minutes chaque solution. J'ai passé plusieurs après-midis à essayer d'installer chaque compilo avec SFML, avec plus ou moins de succès, en me renseignant à chaque fois avant de poster ici.

Enfin bref, je crois que je vais ré-essayer d'installer CodeBlocks avec SFML sur Windows 7. Merci de vos réponses :D

10
Projets SFML / Re : Xeenos [Jeu 2D]
« le: Avril 10, 2012, 07:08:15 pm »
Nous sommes en l'an 1256, [Personnage principal] est un jeune gentil a la cour du chef des gentils (...). Ce chef des gentils, sage et généreux, protège avec soin son peuple. Cependant, il y a quelques jours sa fille a disparu dans un sombre complot revendiqué par son ennemi juré, l'odieux méchant qui souhaite détruire le royaume. C'est alors qu'un groupe de [Personnages secondaires inutiles] dont [Personnage principal] fait partie se met alors (ça fait pas un "alors" de trop) a sa recherche, ils chevauchent pendant des lieux avant d'arriver aux portes du château de cet odieux méchant, au moment ou il pénétrèrent la demeure lugubre un immense bloc de pierre s'effondra dans un immense fracas de poussière, quelques instant plus tard [Personnage principal] se relève, il est enferme dans le château, le sol jonche de cadavres des [Personnages secondaires inutiles] ! Vous êtes [Personnage principal] l'unique survivant, que votre aventure commence !
Fix'd :)

Sinon, plus sérieusement, tu as choisi la date au hasard ou elle aura une importance dans le jeu ?

11
Général / IDE à utiliser
« le: Avril 10, 2012, 06:47:40 pm »
Bonjours à vous, humains, humaines, geeks et autres suppôts de Chtulhu !

Je voulais poser une petite question qui me trottait dans la tête depuis un bout de temps : quel IDE utilisez-vous pour compiler vos projets SFML ? Parce que, dans mon cas :
- SFML ne marche pas avec Code::Blocks sous Windows 7
- Je ne parle même pas de Visual 2010 ...
- Le debugger de CodeBlocks ne marche pas sur XP
- Et Visual 2008 me renvoie plusieurs erreurs incompréhensible (C2275, c'est pas censé être une erreur typique du C ?)

Donc, j'aimerais bien savoir comment vous faites, vous autres codeurs qui arrivez à créer des projets SFML ? Pour ma part, je bloque un peu partout ... :/

Pages: [1]