Git Product home page Git Product logo

chickenpix's People

Contributors

christopherivier avatar eetasse avatar fredger avatar slowfrog avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

chickenpix's Issues

Gérer le scroll du décor avec un système de caméra

La démo actuelle déplace l'objet décor.
En fait, il faut créer un object caméra qui pointe généralement sur le héros et qui est pris en compte par le système de Render pour savoir ce qu'il faut afficher.
La caméra peut se détacher du héros dans certains cas :

  • quand on arrive en bord de carte
  • pour de la mise en scène cinématique

Faire un test de son

On a bien joué avec les graphiques, mais on n'a pas encore testé le son.
Il faudrait au moins vérifier qu'on arrive à jouer un .wav ou un .ogg avec ClanLib et SFML.

Pouvoir enlever un composant d'une entité

Exemple d'utilisation : quand on veut changer l'animation ou l'image d'une entité, le plus simple c'est de supprimer le composant Visual existant et d'en mettre un nouveau.

Refactoring des loaders

Comme pour main(), une bonne partie du code est commune. Aujourd'hui dans CLLoader et SFMLLoader il y a deux blocs de code :

  • le chargement des resources
  • la création des entités

Le code de la deuxième partie est déjà compatible entre CL et SFML, il suffit de le monter dans Loader.
Celui de la première demande un peu plus de bricolage.

Gérer des composants d'IHM

Des boutons, du texte déroulant, j'ai l'impression ce c'est à peu près tout ce qui serait réellement nécessaire.
Pour info, un article potentiellement intéressant sur une façon de faire de l'IHM, spécifiquement dans des jeux : http://iki.fi/sol/imgui/

Pouvoir grouper et tagger les entités

Dans les frameworks existants, il est possible de retrouver des entités par un tag ou dans un groupe.
La différence entre les deux c'est généralement :

  • une entité appartient au plus à un groupe
  • une entité peut avoir plusieurs tags

Réfléchir à une façon de gérer les états du jeu

Par états, j'entends des choses globales comme :

  • état menu de démarrage
  • état déplacement libre sur la carte
  • état dialogue
  • état combat.

Un seul état est actif à un moment donné.
Il existe des transitions définies entre certains états.

Une première piste envisagée en discutant avec Fred était de faire correspondre un état avec un EntityManager, et d'organiser des enchaînements avec passage de données.

Ajouter l'option 'loop=false' sur les sprites

Aujourd'hui, les sprites sont forcément en mode boucle. Pour certaines animations, on n'en a pas besoin. On voudrait que l'animation s'arrête. Soit sur rien, soit sur la première frame, soit sur la dernière.

Mettre en place le scripting

Ajouter un composant permettant à une entité d'exécuter du script (Python) à chaque frame ou sur événement.
Attention ! On va peut-être vouloir d'une même entité puisse avoir plusieurs composants scripts. Avec l'architecture actuelle, ça n'est ni interdit ni vraiment supporté.

Refactoring de main

La boucle de jeu est la même, seules les classes instanciées au départ sont différentes. Du coup, ce serait bien de mettre en commun le code commun (c'est une bonne idée de Nico V.)

ClanLib a l'air de bloquer sur des commentaires

Avec le bout de XML ci-dessous dans resources.xml, l'appli se bloque. Avec d'autres commentaires ça passe. Je soupçonne ClanLib de faire des choses pas claires avec les Node de type commentaire dans certains cas.

<sprite name="wait">
  <image file="img/male_walkcycle.png">
    <grid pos="0,128"
          size="64,64"
          array="1,1" />
  </image>
  <!--animation loop="yes"
             pingpong="yes"
             speed="100"/>
  <frame nr="0"
         speed="4000" />
  <frame nr="13"
         speed="1000" /-->
</sprite>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.