Bonjour à tous, je m'appelle jimmy (bonjour jimmmmmmyyyyy) , hum... Donc 23 ans et toutes mes dents, je viens vous présenter un projet qui est en cour de développement depuis quelques temps maintenant. J'ai beaucoup apprit sur ce site concernant la programmation. D'ailleurs je n'en suis pas à mon premier projet.
En savoir plus sur le projet
Genèse
Donc, Concrètement qu'est ce que je fais en ce moment et qui occupe mais nuit au grand damne de ma petite amie... Je développe un sokoban. Classique... oui! mais, attention! je ne le fais pas en 2d vu de dessus.Oui messieurs (et mesdames!) , je le développe en 2d isométrique. L'idée mes venues quand je me suis aperçu que tout les sokobans auxquelles on peut jouer, sont souvent des jeux en 2d classique, et comme je suis du genre à kiffer grave la 2d iso , je me suis tenter à réaliser ce projet. Ainsi mes principales motivations sont... Miss Pas de calais! ah non , ce n'est pas le sujet. plus sérieusement, je préfére largement les jeux en 2d que ceux en 3d , c'est donc tout naturellement que je me tourne vers la programmation de telles jeux.
EDIT: Synopsie:
Le personnage-joueur est victime d'un accident qui le plonge dans un profond coma. Entre la vie et la mort, il doit ce battre interieurement afin de survivre. Il revivra les instants forts de sa vie et devra les remettres en place dans son esprit afin de pouvoir se réveiller...
Jeu basé sur "On voit defiler sa vie devant les yeux avant de mourir".
Tips:pour l'histoire , le topic de ->mystogen-<, mon premier rpg 2d en équipe qui est malheureusement en standby , la raison ( nous l'avons codé en SFML 1.6, la 2.0 est sortie, puis la 2.1... enfin gros soucis de compatibilité, c'est vraiment dommage, car si je m'en sortais mieux , je l'aurai surement finaliser.
Généralités et avancement
Le jeu sera donc un Sokoban, c'est à dire , pour ceux qui ne connaissent pas, un jeu qui consiste à emmener des caisses sur des objectifs prédéfini. Le joueur ne peut que pousser la caisse devant lui. il peut ainsi se retrouver coincer si il emmène une caisse du mauvais coté.
Pour l'aspect technique de la chose. Du C++ et la SFML (quand on aime , on ne compte pas! ) 2.1 . Je réutilise quelques code que j'avais codé sur mystogen, et je les ai réadapter pour de l'isometrie 2d.
Le jeu est actuellement en version alpha, ( le moteur est pratiquement terminé ) il me reste les graphismes à établir, et pourquoi pas donner un scénario à la chose.
La souris est geré sur la carte avec un overlay et le systeme de pointage fonctionne parfaitement, maintenant je ne sais pas si je pourrai utiliser cette feature dans ce jeu... Au moins j'ai le code!
J'ai également sous le coude une suite de projet "limb", c'est à dire que je crée les outils dont j'ai besoin, Editeur de level, GUI , un système d'encapsulation de ressource est même à l'étude.
Objectifs
L'objectif principal de ce projet est comme la plupart des autres que j'ai réaliser...apprendre de mes erreurs. Quelques feature utiliser: fabriquer un gui sous forme de librairie externe afin de le réutiliser dans le jeu ( librairie déjà fonctionnelle).
Apprendre à planifier les ajouts, afin de créer un système de version de logiciel.
approfondir mes talents de graphiste car j'ai l'intention de tout réaliser seul!
approfondir mes talents de guitariste car j'ai.... enfin vous avez compris!
bref beaucoup d'objectif sur ce projet, c'est d'ailleurs pour cela que j'ai choisit le Sokoban, c'est un jeux qui demande un peu de reflexion sur sa conception objet mais reste néanmoins simple à appréhender. ce qui me laisse du temps et de l'energie pour me concentrer sur le reste.
Le projet et son originalité
Alors, mon sokoban vise tout le monde! du plus jeune au plus vieux, du plus imberbe au moins poilu... ah je m'égare! l'originalité du projet est avant tout le fait que le jeu se présente en 2D iso. Avec des animations (sisi!). Bon trêve de bavardage je vais coder...
hein , on me dit que vous voulez des photos et tout? ok!
Merci de ne pas me tenir rigueur des graphisme à l'heure actuelle, en effet, j'ai réalisé les quelques ressources rapidement afin de pouvoir bosser coté programmation. bien que le personnages animer ma bien pris 3j!
Enfin, je ne suis pas un pro de la programmation , ainsi , je suis certain que vous trouverez certainement de mes ligne de codes bête voir absurde , mais pour moi tant que ça fait ce que je veux et qu'il n'y a pas de problemes de gestion de mémoire derrière...je suis content!
je fournirai surement les sources sous licences libre common partage et modification non commercial.
*correction de bugs de collisions quand un caisse etait déjà sur un objectif
*ajout d'un logo dans la présentation
*Préparation du code pour devenir multiplateforme et pouvoir choisir la resolution (pas encore implementé)
A venir:
*Mise en place du menu (Jouer (mode histoire ou mode libre) - Option - Quitter)
*Mise en place de l'éditeur de puzzle
*systeme de choix du puzzle.
plus tard =>
* ajout d'un étage sur la carte afin de complexifier les puzzles et ajouter des possibilitées de gameplay . Le joueur pourr utiliser un caisse du niveau 0 pour faire un pont au 1er et ainsi passer dessus avec ou sans caisse. Possibilité de faire glisser un caisse sur une pente mais pas l'inverse...
voila le lien du dernier zip en date: LimbEscape LastDebug.
EDIT: je n'avais pas precisé , mais voici un des quelques fichier texte que j'ai "rédigé" avant de me lancer dans le projet ainsi que la maquette du jeu utra HD de la mort.
LimbEscape
Descriptif du fichier:
Ce fichier est le point de depart du projet, il fait office un peu de brainstorming pour ce jeu.
Scenario(synopsie):
Le personnage-joueur est victime d'un accident qui le plonge dans un profond coma. Entre la vie et la mort, il doit ce battre interieurement afin de survivre. Il revivra les instants forts de sa vie et devra les remettres en place dans son esprit afin de pouvoir se reveiller...
Jeu basé sur "On voit defiler sa vie devant les yeux avant de mourir".
Le jeu (systeme):
-Un sokoban en 2D isometrique avec gestion d'altitude pour pouvoir "augmenter" le level design et enrichir les possibilités de puzzle.
L'objectif principal du joueur:
Le joueur devra pousser un ou plusieurs objets à destination de certains points strategiques de la carte afin de deverouiller l'accès au puzzle suivant.
Idée sur le gameplay:
-possibilité de pousser des "caisses" dans des pentes descendantes mais pas les monter.
-le joueurs aurait des objectifs optionnels en plus du principal ( exemple amener tel objet ramassé a tel endroit...)
-une "caisse" pourra servir de passerelle entre 2 zones afin de terminer le puzzle.
Rejouabilité:
-mode de jeu :
-Le mode histoire , où un mini scénario sera raconté.
(-Un mode Esbrouffe, où les joueurs pourront jouer sur des puzzles créé par la communauté et ainsi battre des records de temps.)
Enjoy , j'attend vos retours sur d'éventuelles bugs.
J'attends également vos retours concernant le logo concernant ma "marque" de fabrique . Certains diront que c'est totalement nul de se donner un nom , moi sa me motive!
Ces 2 derniers jours, je me suis penché sur l'ajout de fonction permettant d'enregistrer et charger une carte à partir d'un fichier binaire (une première pour moi! ) .
Voici en détail comment le programme fonctionne:
Lors de la création d'une carte:
La fonction de création crée une carte à partir du nom donné par l'utilisateur. Elle appel également la construction d'un RessourceHolder (qui contient toutes les textures nécessaires a la carte) arbitraire qui charge les textures par defaut. (cela pourra être modifié ensuite).
Lors de la sauvegarde, Le nom de la carte est réutiliser pour créer le fichier correspondant.
Pour eviter d'écraser une carte deja existante, les cartes utilisateurs, seront enregistrées dans Cartes/Perso/ tandis que celle fournit de base seront dans Cartes/
Lors du chargement:
Lorsque l'on demande de charger une carte (dont le nom est demandé avant) , on crée un objet Carte vide.
On charge ensuite dedans les données dans le même ordre que l'on a sauvegardé.
On fabrique ensuite les éléments à partir du tableau d’élément que l'on stocke dans un vecteur de pointeur.
Le tableau d'element est en faite un tableau qui permet stocke les informations d’élément de la façon suivante:
vector<int> tableau_element[coteCarte²]; //voila à quoi ressemble le tableau
On parcourt le tableau dans une double boucle:
for(unsigned int i=0;i<coteCarte;i++)
{
for(unsigned int j=0;j<coteCarte;j++)
{
tableau_element[j*coteCarte + i] //...
}
}
La formule j*coteCarte+i est valable car la carte est carrée et non rectangulaire.Grâce à celle ci on parcourt le tableau sans problemes , en remplacant i et j par les coordonnées sur la carte (x;y) . on peut savoir quel type d’élément se trouve à tel endroit.
Si par exemple nous voulons savoir ce qui se trouve en coordonnées (5,2) et que coteCarte vaut 10, on interroge:
Type_element elm=tableau_element[10 * 2 + 5] //donc en case 25 / 100 du tableau
Grâce à cette methode, on peut donc interroger puis créer les elements en conséquence et aux bon endroits.
Une fois les éléments chargés, on crée un RessourceHolder a partir du pack enregistré dans la carte.
j'y ai pensé , c'etait justement mon premier choix, le probleme c'est qu'on ne peut pas gerer dynamiquement un tableau [][]. seul le premier[] peut être initialisé dans le programme, mais pas le deuxieme. d'où cette facon de faire :/
si on essait genre de faire:
int tableau[][]; //dans la declaration de class
EDIT:
Quand j'y repense, cette boucle je l'utilise que lors du chargement , lors de l'execution , on sait toujours a quel endroit du tableau pour gerer les elements, donc on si par exemple le joueur sera en 5,5 on a qu'a faire 5*cotecarte+(5+1) est on test la position devant soit par exemple.
et
int tableau[tailleX][tailleY] = {0};
on obtient un beau :
as multidimensional array must have bounds for all dimensions except the first
(comme la taille du tableau est changeante...)
Sinon je les delimite arbitrairement. genre pas plus de 15*15...
mais si tu as un moyen de contourner ça , pourquoi pas!
/=0|_43/=0|_< a écrit:
edit : perso j'aime bien ton logo
je reporte aussi un problème : on ne peut pas se déplacer vers la droite de l'écran, ni vers le haut à droite en diagonale !
- Edité par /=0|_43/=0|_< il y a environ 1 heure
Merci pour le logo !
Hum j'ai changé les commandes: ZQSD , tu serai pas en QWERTY?
- Edité par jimoniak 5 janvier 2015 à 21:52:01
Avide et curieux de connaissance. Nouveau projet: LimbEscape , Sokoban en 2d isometrique Blog
J'ai refait tout le Github pour que ce soit plus claire: vous le trouverez ici : LimbStudio
Ensuite voici les nouvelles qui sont aussi visible ici : Limbstudio.blogspot
Bonjour à tous, Une nouvelle mise à jour concernant L'éditeur LimbEditor est disponible sur les dépôts github.
Mise à jour
LimbEditor voit donc (enfin!) ses fonctions d'éditions implémentées. La sauvegarde et le chargement de carte son opérationnels. Il est impossible d'ajouter 2 départs en mêmes temps.
Etant donnés les nombreux changement opérés au sein même de la gestion de la carte, je dois recoder une partie de LimbEscape. J'ai en effet réaliser également des modification importante au sein de ma librairie LimbGUI ( qui s'occupe de la gestion des boutons et des zones de saisie) qui oblige à adapter également le code. voici quelques screens:
Comment on s'en sert?
Très simple d'utilisation, voici les differentes commandes: les croix directionnelles pour bouger la camera (peut être utiles sur les plus grandes cartes). La souris exclusivement pour positionner et sélectionner les éléments sur la carte.
Ca bug chef...
Il y a quelques bugs qui seront corrigés prochainement:
*L'affichage qui ne se fait pas dans "l'ordre" en fonction de comment on ajoute les elements sur la carte. Je réfléchis à une solutions performante afin de trier efficacement le tableau qui contient ces elements en fonction de leurs position.
*Ne rien entrer dans le champs de nom carte et cliqué sur charger peux provoquer un plantage. En cours de résolution également.
*Créer une cartes sans entrer de dimension peux également provoquer un plantage. Il manque en effet une condition dans le code actuel qui sera résolue prochainement.
Prochaines features:
*Avertissement sur le nombre de caisse et d'objectif.Il faudra en effet au moins autant d'objectif que de caisse pour pouvoir jouer la carte.
*Déjà implémenté dans le code, ajout d'un zone de saisie pour le pack de ressource utilisé par la carte.
*Ajout d'un système de liaison de niveau afin de créer une suite de niveau.
*Ajout de la faculté de pouvoir ressortir de l'éditeur pour charger une autre carte.
*Autres fonctionnalités... C'est tout pour aujourd'hui, à très vite!
Avide et curieux de connaissance. Nouveau projet: LimbEscape , Sokoban en 2d isometrique Blog
J'ai fait les corrections énonce plus haut ainsi que d'autre:
En effet, j'ai remarqué un bug assez gênant , lorsque l'on sauvegardait, la taille des chaines de caractère n'etait pas enregistrer, ce qui fait que lors du chargement, impossible de savoir le nombre d'octets à charger. Du coup, une des securites que j'ai mis s'activai et rendai le pb non visible.
j'utilise flux.write(adresse, nombre octet) en binaire.
ainsi , j'ai donc modifié de façon a ce que je récupère les tailles et des les enregistrer ensuite. Un bug qui peux ce produire sur les architecture que les miennes, c'est que le chargement ne se fasse pas. En effet, j'ai utilisé les type classique, et je viens de me rappeler qu'il n’était pas fixe en taille. Je vais donc modifier (encore une fois! ) afin de poser des type de taille fixe d'une architecture a une autre.
J'ai également implémenter les nouveautés dans le jeux.
Ce qui est faisable actuellement:
- charger une carte du répertoire Cartes/ , déplacer le personnage dessus.
voila voila , toujours dispo à cette adresse : Limbstudio
Avide et curieux de connaissance. Nouveau projet: LimbEscape , Sokoban en 2d isometrique Blog
Voici l'article que je viens de publier sur le DevBlog (disponible ICI ) :
Mise à jour...
Bien le bonsoir!
J'ai bien avancé sur LimbEscape, je vous présentes ça de suite:
Extrait du log:
Ajout d'une fonction victoire qui fait revenir au menu principal
Ajout d'un bouton retour en jeu
Réecriture du système de collision pour corriger des bugs
Correction de bug d'affichage (caisse affiché sur la bonne couche)
Le plus long à été de réecriture les collisions, car c'était le bazar! J'ai donc synthétisé toutes les possibilité de déplacement possible.
Plutôt que d'écrire le code pour chaque direction, j'utilise un code générique utilisable dans toutes les directions ce qui allégé par 4 le texte.
Je procéde comme suit:
En fonction de la direction voulue, j'initialise un vecteur de déplacement (par exemple pour allée en haut à droite = -1 en Y , je l'initialise à (0,-1).
Ensuite, grâce à ce vecteur je vais pouvoir vérifié mes collisions par rapport à la position du joueur:
si je suis en (5,5) , je verifie que en (5,5) + vecteurDeplacement je n'ai pas d'obstacle.
Si je n'ai pas d'obstacle :
je me déplace.
Si j'ai un obstacle non franchissable:
et que je sais qu'il est poussable => je vérifie que dans la position (5,5) + vecteurDeplacement*2 je n'ai pas d'obstacle. Si il n'y en à pas , je pousse l'élement et je deplace le joueur.
Dans tout les cas un element ne peut pas être franchissable et poussable à la fois.
Voila pour la nouvelle mécanique qui est beaucoup plus simple et rapide que l'ancienne.
Un affichage presque parfait...
Autre nouveauté, l'affichage dans le bon ordre de tous les élements (sauf le joueur mais j'y travail). En effet, dans la 0.6, le problème se posait lorsque l'on déplaçai une caisse, elle finissait soit par être dessiner au dessus d'un mur, ou bien sous un objectif , j'ai donc réglé le problème.
D'une part, les elements sont stockés dans un seul est même vecteur que l'on nommera elementHolder lors du chargement. (mur, caisse, objectifs et depart confondu)
je scinde ensuite ce tableau en 2 parties: d'un coté, les murs et les caisses dans tableauElem (vector à deux dimension), et de l'autre les objectifs dans repereObjectif. (le depart est invisible pour le joueur donc pas besoin de l'utiliser ici.)
Pour tableauElem (un tableau de pointeur), je parcours elementHolder à la recherche des murs et des caisse, dès que j'en trouve un ou une, j'enregistre son adresse dans l'entrée correspondant à sa position sur la carte dans tableauElem. En gros : Si je trouve un caisse qui à pour position (5,4) sur la carte, j'enregistre son adresse en tableauElem[4][5] dans le tableau.
le repereObjectif est un vector de nombre entier . Je parcours elementHolder et dès que je trouve un objectif, j'enregistre sa position au sein du tableau dans une nouvelle entrée de repereObjectif.
Une fois c'est deux element correctement initialisés, je dessine en premier le support de la carte, puis tout les objectifs (car collés au sol) et enfin je lis le tableau d’élément dans l'ordre par rangé de Y (d'où l'inversion [Y][X] du tableau . Lorsqu'une caisse est poussée, je la change de position dans le tableau . Pour reprendre l'exemple de toute à l'heure, ou l'on se deplacait de (0,1) , cela veut tout simplement dire que je remonte d'une rangé en Y, si ma caisse était en (5,4) sur la carte, elle passerai de [4][5] à [3][5] dans tableauElem.Ainsi elle se retouvera dessiné avant les element present sur la rangé Y=4.Donc l'affichage se fera toujours correctement dans cette ordre la.
Après ce beau pavé, voici quelques images des avancées:
Pour expliqué un peu: La fonction de chargement aléatoire à était amélioré. La console montre le nombre d'objectifs restants avant d'avoir terminé.On peut également, si le puzzle actuelle ne plait pas, faire retour en jeu afin de soit chargé une carte en particulier, soit de relancer une carte aléatoire.
Le bouton Recharger n'est pas encore fonctionnelle. Il 'y a pas encore de sécurité concernant le nombre minimum de caisse à avoir. C'est à dire que si vous mettez moins de caisse que d'objectif , vous ne pourrez pas finir le puzzle (logique) , mais l'éditeur n'interdit pas de créer se genre de carte.
Un victoire se traduit par le retour sur l'écran de choix.
Quelques bug connus: -Lorsque la carte ne possede pas de depart , le joueur est positionné en 0,0 sans tenir compte des élements, de plus il y a un bug d'affichage. Sera régler prochainement grâce à l'éditeur qui placera automatiquement un point de départ si il n'y en a pas.
-SegFault sur la class joueur, lorsque l'on ferme le jeu durant la phase d'intro, (dû aux sprite non chargé de la SFML) sera corrigé.
Fonctionnalités à venir...
Pour alpha 0.8:
*corrections: ajout sécurité RessourceHolder
*Ajout de fonction restart en jeu (recharger la carte pour retenter le puzzle)
*Ajout d'un profil de joueur.
*Ajout d'un système de liaison de niveau
*Ajout d'un chronométré.
*Ajout des Packs ressources fonctionnels.
ces ajouts ne seront pas forcement dans la 0.8.
Comme toujours, les sources à jours sont sur Github dans Limbstudio/Limbescape/Source
sinon l'executable est dans le dossier LimbStudio/LimbEscape/bin/ n'oubliez pas de telecharger le dossier Data ainsi que les dll ! (jetez un oeil au lisez-moi.txt!)
C'est tout pour aujourd'hui!
Avide et curieux de connaissance. Nouveau projet: LimbEscape , Sokoban en 2d isometrique Blog
Tu compte donner la possibilité de changer le visuel à terme ou pas ?
Bien, sur d'où la presences des ressources pack :) Par exemple, de base les cartes utilise le dossier Default pour les textures de l'écran, rien n'empeche de changer le contenu de celui-ci , ou bien de crée un carte qui demande autre chose que le default .
EDIT: J'avais pas comprit le sens de ta question. Donc oui , j'ai déjà commencé à créer des sprites de meilleurs qualités
Bien que ce soit une bonne idée, je vois pas pourquoi j'implémenterai une fonction de modifications de sprite dans le jeu. The Gimp le fait si bien... De plus si une telle fonction devait voir le jour, elle serait intégré directement à l'éditeur.
Enfin, dans ton exemple tu integre Qt, que je n'ai pas du tout apprit ni envie d'utiliser . voila voila
Merci pour vos réponses , ça fait plaisir de voir que mes monologues n'en sont parfois pas
- Edité par jimoniak 17 janvier 2015 à 16:18:15
Avide et curieux de connaissance. Nouveau projet: LimbEscape , Sokoban en 2d isometrique Blog
Bonjour, aujourd'hui je vous annonce que j'ai retiré les zones de saisies (pour le chargement des cartes notamment) au profit de menu plus complet. Sans plus attendre une photo de la bête:
Changement de la disposition...
Nouveau système de menu remplaçant les zones de saisie
Au démarrage,le programme scan le dossier des Cartes afin de récupérer une liste de tous les fichiers .map qu'il trouve. Un fois cela fais , lors de l'entrée dans la fonction qui fabrique ce menu, nous parcourons la liste ci dessus est créons les vignettes. A l'appuie sur l'une d'elle , la fonction retourne la chaine de caractère correspondante au nom de la carte voulue.
Ce menu fonctionne aussi bien pour les cartes, que pour les fichiers de suites de cartes. Je suis assez content du résultat, le programme commence à être vraiment opérationnel, sans compter le nombre de bugs qui diminue malgré tous les ajouts réalisés.
Les suites de niveaux...
Marre de jouer une carte à la fois? ce temps est révolu car j'ai implémenté le système de suite de niveaux. De plus , il sera facile de créer les suites vous même. Pour cela allez dans Cartes/Suites/ , créez un fichier .txt et changez son extension en .ste . Ouvrez le avec un bloc note, et écrivez toutes les cartes (une à chaque ligne) dans l'ordre souhaité. Vous pouvez vous inspirer de "Default.ste" pour voir comment le système fonctionne.
Une fois cela fait vous pourrez ouvrir le jeu , il détectera automatiquement votre suite. Vous n'aurez plus qu'a faire Jouer -> Suite -> Choisir -> et cliquer sur votre suite.
Menu de sélection des suites
Menu "Choisir" des suites utilisant le nouveau système de menu
Autres ajouts en vrac...
En plus de ces nouvelles fonctionnalités, permettez moi de vous présenter les autres qui , bien que plus petites, améliorent grandement le confort de jeu:
*corrections - ajout sécurité RessourceHolder
Un ajout qui permet de charger le pack de texture par défaut si jamais le pack demandé est introuvable.
*Ajout de fonction restart en jeu (recharger la carte pour retenter le puzzle):
Le bouton était la mais la fonction non implémenté, c'est chose faites maintenant.
*Ajout d'un chronomètre:
Le temps que vous mettez à résoudre un puzzle vous est indiqué en fin de partie.
Ecran de fin de niveau affichant le temps écoulé
L'appuie sur suivant vous ramènera au menu si vous jouiez une carte seule ou si vous arriver en fin de suite. Si vous jouiez une suite, il vous mettra directement la prochaine carte de celle ci.
*Ajout des Packs ressources fonctionnels.
Les pack de ressources sont fonctionnels sur le jeu, il ne reste plus qu'a pouvoir les choisirs dans l'éditeur.
*Ajout d'un dossier Full dans le github , dedans un zip tout prêt pour pouvoir commencer à jouer. Il sera mis à jour à chaque nouvelle update de version. Noté qu'il est en release en non en debug.
Prochaines mise à jour...
Voici ce que je prépare pour la 0.9:
*Ajout d'une mini messagerie ( temps , objectif restants... ).
*Réecriture de l'animation personnage.
*Maj Graphique!
*Maj LimbEditor...
*d'autres corrections...
Voila c'est tout pour aujourd'hui. Comme d'habitude n'hésitez pas à aller un tour sur le github ( lien LimbStudio dans la barre à gauche! ) ou sur la page Facebook .
Bonne soirée!
Avide et curieux de connaissance. Nouveau projet: LimbEscape , Sokoban en 2d isometrique Blog
Tu devrais virer les dlls et les zip du dépôt, ça serait plus propre qu'il n'y ait que le code (quitte à mettre un lien dans le README vers ton blog pour télécharger le jeu compilé). Il serait aussi bien pratique que le processus de compilation soit expliqué dans le README (rajouter un Makefile?).
Je jetterai certainement un coup d'oeil au code et j'essaierai de compiler histoire d'avoir d'autres avis. Bon courage pour la suite du projet!
Tu devrais virer les dlls et les zip du dépôt, ça serait plus propre qu'il n'y ait que le code (quitte à mettre un lien dans le README vers ton blog pour télécharger le jeu compilé). Il serait aussi bien pratique que le processus de compilation soit expliqué dans le README (rajouter un Makefile?).
Je jetterai certainement un coup d'oeil au code et j'essaierai de compiler histoire d'avoir d'autres avis. Bon courage pour la suite du projet!
- Edité par Bibibye il y a environ 1 heure
MAKEFILE Ajouté.
Avide et curieux de connaissance. Nouveau projet: LimbEscape , Sokoban en 2d isometrique Blog
Alpha 0.9 sortie. L'article qui suit est visible également sur le Blog.
Dessine-moi un mouton...
Bonjour à tous!
La version 0.9 de LimbEscape est en ligne sur Github depuis ce matin. J'ai surtout réalisé de nouveaux sprites pour le jeu et corrigé quelques bug. Il y a quand même quelques ajouts.
Sans plus attendre voici les nouveaux sprites:
Je ne pose pas le joueur car je ne l'ai pas encore réalisé (j'ai retiré le gabarit pour posé un charset trouvé sur le net pour le personnage).
voila ce que ça donne :
Le reste...
D'autres nouveautés sont aussi présentes:
Ajout Crédit:
Il y a désormais un nouveau bouton sur la première page du menu qui permet d'ouvrir les crédits du jeu, où sont présentes des informations comme la version du logiciel ou encore la licences.
Ajout de bords de cartes:
Un ajout plutôt esthétique ici, des bords ont été ajoutés à la carte. cela évite la sensation de carte "coupée".
Ajout des son et musique générals:
Les sons lorsque l'on clique sur un bouton sont désormais ajoutés. Noté aussi qu'une musique d'ambiance est présente. Le reste des sonorités viendront dans une prochaine mise à jour.
Amélioration chronomètre:
Le chronomètre indique désormais les minutes et secondes.
Réecriture fonction animation personnage:
La fonction qui permet d'animer le personnage à été retravaillé afin de rendre le code plus lisible. Elle est également beaucoup plus courte et permet d'insérer des animations différentes telle que lorsque le personnage est immobile (idle).
Affichage joueur corrigé:
Le personnage était affiché au dessus de tout , ce qui pouvais rendre la scène incompréhensible.
C'est chose réglé. le personnage est affiché au bon moment sur la carte.
Il y a également eu la résolutions de quelques bugs mineurs ainsi que l'ajout d'un MakeFile pour ceux qui souhaiterai compiler sur leur plateforme.
Il est à noté aussi que le projet est désormais sous licence CeCILL 2.1 .
Les prochains ajouts:
Je prévois d'ajouter d'autres fonctionnalités comme la messagerie en jeu ( qui est déjà annoncée depuis plusieurs mise à jour!) ainsi que des élements de gameplay comme des sens uniques. Je suis à l'étude sur une amélioration de la carte qui permettrai de gérer la hauteur sur la carte. ce qui pourrai grandement ajouté des possibilités en jeu.
Voila comme toujours, n'hésitez pas à suivre le projet sur la page facebook ou même ici via votre compte google plus!
Le projet est disponible sur Github. (liens dans la colonne de gauche! )
A bientôt!
Avide et curieux de connaissance. Nouveau projet: LimbEscape , Sokoban en 2d isometrique Blog
{C++} LimbEscape, Sokoban en 2d Isometrique.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.