IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Projets Discussion :

[WEJV5] pixhardlife, petit jeu action-platformer minimaliste


Sujet :

Projets

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut [WEJV5] pixhardlife, petit jeu action-platformer minimaliste
    Bonsoir/jour à tous!

    Pixhardlife est un petit jeu solo en 2D vue de côté. C'est un action-plateformer au design très minimaliste.Chaque couleur possède une fonction (sol, plateforme, monstre, pièce, coeur...). Il se joue au clavier et à la souris. Les maps seront assemblés aléatoirement à partir de "blocs" déjà formés afin de permettre une certaine rejouabilité.

    Voici un petit aperçus de ce que ça devrait approximativement donner.

    Nom : demo esprit jeu grand.PNG
Affichages : 500
Taille : 6,3 Ko

    Je code le tout en C avec la SDL. Le but est d'apprendre à m'en servir (je n'y ai quasiment jamais touché #noob ^^ ) ainsi qu'a m’entraîner à optimiser mes codes bien sûr!

    Je vous souhaite bonne chance pour vos projets!

  2. #2
    Membre à l'essai
    Homme Profil pro
    Développeur Généraliste
    Inscrit en
    Juillet 2013
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Généraliste
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 13
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    J'aime beaucoup l'apparence de ton jeu.

    Par contre, à mon humble avis, les perso et monstres et autres devrait avec une taille supérieur au mur et sol pour que l'on les distingue plus facilement.

    Je me demandai si un graphisme du perso et des monstres/items comme dans la demo de Quintus donnerai un meilleur effet.

    Tu pourras peut-être faire des monstres/items avec des apparences générer aléatoirement.

    Voilà, je te laisse avancé sur ton jeu maintenant

    @+

  3. #3
    Membre averti Avatar de yetimothee
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Ca a l'air sympa, j'attends le résultat ! SDL1.2 ou 2 ?

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Yo

    Merci de vos retours

    Effectivement, tout n'est pas à l'échelle et le perso/les monstres seront plus grands. Je ne pense pas les faire à la manière de la demo de Quintus (d'ailleurs ça m'a l'air bien sympa...) mais je vais certainement les modifier oui (tout en restant des carrés).

    Sinon j'utilise la SDL 1.2. J'ai tellement galéré pour l'installer ^^' . A chaque fois dans les tutos les mecs ils te montrent un truc simple, toi tu refais exactement la même chose mais tu tombes sur des bugs que personne n'a jamais eu. Et tu recommence et tu retombe sur d'autres bugs encore avec toujours la même manip... x)

    Par contre j'ai peur de manquer un peu de temps, je n'y passe pas toute la journée. Mais bon, on verra jusqu'où j'irais!

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Bon, après cette première journée de programmation, je dois dire que c'est un peu douloureux...
    D'habitude je suis très bon en algorithmie mais encore faut il que je connaisse le language dans lequel je code pour pouvoir faire quelque chose, et là...
    Je galère vraiment avec cette SDL.

    J'ai pu faire les déplacements du perso mais je n'arrive vraiment pas à gérer les collisions. Enfaite, je pensais tester certains pixels autour du joueur et déduire les collisions et les actions en fonction de leur couleur. Sauf que je n'arrive pas du tout à lire la couleur d'un pixel!

    Si quelqu'un a une idée là dessus, je suis preneur! (juste ce bout de code représente près de la moitié du temps que j'ai passé dans la prog) (je code sous code blocks avec la SDL 1.2)

    Voici donc un petit aperçus sur une map test:

    Nom : fin jour 1.png
Affichages : 439
Taille : 119,6 Ko


    En tout cas j'ai hâte de voir ce que vous aurez réussi à faire en ces 2 jours de travail!
    Aller, courage, il reste une nuit et une journée!

  6. #6
    Membre expert

    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Février 2006
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2006
    Messages : 1 031
    Points : 3 092
    Points
    3 092
    Par défaut
    Tu n'est pas censé lire directement la couleur des pixels sur ton image, c'est plutôt à toi de stocker les positions, tailles et couleurs de tous tes rectangles et de faire les calculs adéquats avec ça
    Lire la couleur des pixels c'était pour faire un worms
    Suivez le développement de Chibis Bomba
    twitter : https://twitter.com/MoD_DiB
    DevBlog : http://moddib.blogspot.fr/

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Effectivement, en temps normal c'est ce que les gens font (j'ai d'ailleurs l'impression d'être le seul à vouloir faire ça...) mais ici j'aimerais ne pas utiliser cette technique. Pourquoi? Et bien créer une map juste en dessinant des traits de couleur prend aux alentours d'une minute et potentiellement chaque joueur peut créer sa map et jouer dedans facilement et rapidement. Et dans mon code, j'ai juste besoin de récupérer la couleur de quelques pixels autour de mon joueur. J'utilise déjà ce principe sur ma Ti84 et ça fonctionne très bien mais j'ai une fonction qui me renvoi l'état du pixel, et c'est uniquement ce qu'il me faut ici pour que ça fonctionne: une fonction qui lise la couleur du pixel et qui le stock dans des variables R, V, B.

    J'ai trouvé la fonction GetRGB que j'utilise comme ceci dans mon code mais ça ne marche pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     SDL_Surface* ecran = SDL_SetVideoMode(1280, 720, 24, SDL_HWSURFACE|SDL_DOUBLEBUF); 
     Uint8 r=0; Uint8 g=0; Uint8 b=0;
           ...
     SDL_LockSurface(ecran);
     SDL_GetRGB((pos_j1.x)*ecran->w+(pos_j1.y +35), ecran->format, &r, &g, &b); // pos_j1 est la position du joueur de taille 30px*30px et de couleur noir
     SDL_UnlockSurface(ecran);
    Les variables r, g, et b restent à zéro alors qu'elles devraient prendre d'autres valeurs

  8. #8
    Membre averti Avatar de yetimothee
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    260
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 260
    Points : 364
    Points
    364
    Par défaut
    Oh, après 5 secondes de recherche sur google j'ai trouvé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Uint32 getpixel(SDL_Surface *surface, int x, int y)
    {
        int bpp = surface->format->BytesPerPixel;
        /* Here p is the address to the pixel we want to retrieve */
        Uint8 *p = (Uint8 *)surface->pixels + y * surface->pitch + x * bpp;
     
        switch(bpp) {
        case 1:
            return *p;
            break;
     
        case 2:
            return *(Uint16 *)p;
            break;
     
        case 3:
            if(SDL_BYTEORDER == SDL_BIG_ENDIAN)
                return p[0] << 16 | p[1] << 8 | p[2];
            else
                return p[0] | p[1] << 8 | p[2] << 16;
            break;
     
        case 4:
            return *(Uint32 *)p;
            break;
     
        default:
            return 0;       /* shouldn't happen, but avoids warnings */
        }
    }
    http://sdl.beuc.net/sdl.wiki/Pixel_Access

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Je l'avais aussi vu hier mais je n'avais pas du tout compris comment elle fonctionnait ni ce qu'elle renvoyait. J'avais donc fais des tests mais comme je ne savais pas quoi mettre, cela ne pouvait évidement pas fonctionner... Je rappel que je n'ai jamais fais de programmation avec la SDL et quand on ne sais pas où chercher ni comment ça fonctionne, c'est déstabilisant. Mais c'est pour ça que je suis là: apprendre!

    Cependant j'ai reçus un ptit coup de pouce tout à l'heure et maintenant tout va bien, je peux faire mon système de collisions! Je commençais un peu à devenir fou avec ça ^^

  10. #10
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut TERMINUS!
    Bon, ba après ces deux jours de codage pas forcément trop intense, voici le résultat!
    Ça correspond à la moitié de ce que je voulais faire mais au moins ça fonctionne... ^^

    https://www.facebook.com/10000315705...3/?pnref=story

    Donc le seul gros point fort à retenir ici c'est que chacun peu créer très facilement ses propres maps avec paint.

    Avant de jouer je vous conseil de lire le fichier texte '0 READ ME BEFORE PLAYING', il y a 2-3 infos.

    Voici le lien pour télécharger le jeu:
    https://www.dropbox.com/s/71dq3dmi16...dlife.zip?dl=0


    Je tiens à Remercier Snotra Skuld qui m'a sortis d'un problème sur lequel je bloquait depuis des heures! MERCI!!! :')
    De même, Little White m'a montré des petits tutos bien sympa
    Et Enfin, CodeurPlusPlus qui m'a débloqué de nombreuses fois et qui m'a permis de vous présenter un fichier executable ^^

    Bon jeu à tous!

  11. #11
    Membre émérite Avatar de Cirrus Minor
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2014
    Messages
    953
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2014
    Messages : 953
    Points : 2 612
    Points
    2 612
    Par défaut
    J'ai essayé le jeu.
    On se fait assez vite aux graphismes minimalistes, j'ai passé les deux niveaux (je suppose qu'il y en a que 2, le jeu s'est ensuite arrêté) assez rapidement, donc la prise en main était assez rapide.
    Pour ceux qui veulent essayer sur Windows, il y a un exécutable et les données nécessaire dans "bin/Debug".
    Une bonne base pour un jeu à la "Super Meat Boy", bravo !

  12. #12
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut
    Merci du retour

    Sinon pour jouer, au lieu de s'aventurer dans les dossiers et sous-dossier de l'infinie, j'ai crée un dossier executable qui contient un lien direct vers l'executable du jeu. Il n'y a plus qu'à cliquer dessus

    Et effectivement il n'y a que 2 niveaux d'intégrés donc ça se ferme (brutalement) lorsqu'on termine le niveau 2.

    Pour ceux qui ont des problèmes de clavier et qui ne peuvent pas aller à gauche avec 'q', essayez avec 'a'. C'est un problème qui vient de la SDL, elle met automatiquement le clavier en qwerty donc j'ai mis 'a' dans le code pour qu'on puisse jouer en azerty mais pour certains le résultat est inverse à celui attendu.

  13. #13
    En attente de confirmation mail

    Profil pro
    Inscrit en
    Septembre 2013
    Messages
    639
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2013
    Messages : 639
    Points : 2 347
    Points
    2 347
    Par défaut
    Sympa comme jeu.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 14
    Points : 11
    Points
    11
    Par défaut Champi Up!
    Je suis de retour!

    J'ai passé les deux petits jours suivant le week-end à améliorer mon code (parce qu'il était vraiment cracra et mal opti et je n'aime pas quand c'est mal opti! ^^) et à ajouter ce qui me semblait être le minimum vital.

    -Le gain de rapidité d'exécution est d'environs 1 000%
    -Les collisions sont largement plus précises qu'avant (on pouvait traverser les murs si on arrivait trop vite )
    -J'ai fais un fichier d'installation, comme ça pour jouer on a directement la petite icone sur le bureau, plus besoin d'aller chercher dans les dossier.
    -J'ai ajouté 2 maps (plus difficiles que les autres ). 4 En tout c'est peu et je le conçois mais j'ai fais en sorte qu'on puisse créer ses propres maps facilement et rapidement pour ça
    Toujours dans la catégorie maps, on peut maintenant les choisir à partir du menu en cliquant sur les flèches. De plus, une fois qu'on a terminé tous les niveaux, on revient au menu au lieu de fermer le jeu comme une brute ^^
    -Il y a une map de base pour vous aider à construire vos niveaux.
    -Certains avaient un problème de commande avec leur clavier et devaient appuyer sur 'a' au lieu de 'q'. Et bien j'ai mis les deux touches pour régler ce problème!
    -Les vitesses de déplacements ont été légèrement modifiés (donc aussi la hauteur et la longueur des sauts) ce qui implique plus qu'avant de bien utiliser l'environnement (notamment les murs qui donnent de la vitesse)
    -Et d'autres corrections moins importantes...

    Ca fait donc pas mal de choses!

    Pour moi c'est la rentrée en Prépa donc je n'aurais pas forcément l'occasion de faire de grandes avancées avant pas mal de temps mais je garde ce jeu en cours de développement. J'aimerais notamment le rendre plus vivant avec des ennemis, des éléments mobiles et ce que j'avais prévu au début: un assemblage aléatoire des niveaux.

    Sur ce, bon jeu à tous!

    edit: J'ai oublié de mettre le lien... -_-
    https://www.dropbox.com/s/phvyi4ct4s...setup.exe?dl=0

Discussions similaires

  1. Petit jeu multijoueur en ligne (commençons simple lol)
    Par Archaoniro dans le forum Langage
    Réponses: 25
    Dernier message: 24/03/2006, 18h31
  2. Jeu action/tactique/infiltration
    Par mattiouchka dans le forum Projets
    Réponses: 3
    Dernier message: 08/03/2006, 20h32
  3. Petit jeu en java
    Par Seth77 dans le forum 2D
    Réponses: 80
    Dernier message: 08/01/2006, 23h01
  4. Nombre aléatoire (petit jeu)
    Par niCo.nb dans le forum C
    Réponses: 7
    Dernier message: 14/10/2005, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo