[TUTO] Créer un jeu avec GameMaker

Pour tout ce qui est fan arts, homebrew, shooters codés à la main, rip de sprites, doujins et toute autre productions artistiques ou logicielles faites maison.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

Je suis en pleine lecture, pour le moment ça passe bien même si des fois les explications vont vite, mais j'en suis très content et tout est bien expliqué !
C'est intéressant aussi de voir que pour déplacer le vaisseau par exemple, le processus est différent de ce que j'ai vu à présent. Là en l’occurrence on créé des variables résultat pour stocker "l'état" de chaque touche haut/bas etc (c'est d'ailleurs une "longueur" de type bouléen, si je me rappele bien mes cours :) ) ... et on appelle la valeur de ces variables dans du code, pour le déplacement. Là où avant on me proposait de juste mettre, par exemple :

Code : Tout sélectionner

if (keyboard_check_pressed (vk_up))
{  y -= 5 }
D'ailleurs quel est l'intérêt de passer par une variable et ensuite appeler sa valeur dans du code, plutôt que de faire comme au dessus ? Pour pouvoir plus tard "jouer" avec cette variable? J'espère ne pas trop dire de conneries quand j'utilise les termes, faut pas hésiter à me corriger.
Bon allez je vais continuer la lecture ! @ + tard. :binouze: (> remplacer la binouze par du café, j'ai pas trop dormi cette nuit :))
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

L'intérêt est de voir comment fonctionne ceci :

Code : Tout sélectionner

if (keyboard_check_pressed (vk_up))
{  y -= 5 }
C'est exactement la meme chose, juste que ca te montre comment travailler avec une fonction que tu ne connais pas et observer quels sont les résultats que tu obtiens en mode debug.

Le bout de code juste là au dessus, rien n'apparait en mode debug.
De plus, j'utilise un keyboard_check pour connaitre l'état de la touche. Ca a ptete changé avec le passage en version studio, mais utilisé un keyboard_check_pressed pouvais poser des problèmes quand on voulait par exemple mettre en place un shot et un tir chargé sur la meme touche...
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

J'ai fait une petite erreur, Je voulais juste parler de la fonction "if (keyboard_check ())" sans le "pressed" et du faite que dans ton tuto on procédait différement en utilisant une variable : "résultat". Mais c'est intéressant de voir qu'avec l'autre méthode rien n'apparait en debbug, j'avais pas pensé.

En ce qui concerne mon projet, utiliser des manettes sera possible à mettre en place, pas trop compliqué ?
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

En principe ca devrait pas etre plus difficile qu'avec le clavier.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

Bon ça va ça me rassure, j'avais déjà réussi à utiliser des touches simples (une manette PS2 raccordée à un adaptateur usb pour 2 joueurs max): déplacement haut/bas et tir, mais sélectionner une direction avec le joystick, avant de tirer, pas moyen. Bon je vais continuer de lire ton tuto, j'en suis au scrolling, d'ici ce soir j'aurai fini et je continuerai de bosser sur mon projet en appliquant ce que j'ai appris !
j'avance par étapes :
étape 1 : déplacement, tir, pv, mort.
étape 2 : créer un écran titre, une fin à la mort de l'un des deux joueurs.
etc ... je reste a chaque fois "basique", et une fois que j'aurai produit les bases des mécaniques, je peaufinerai. Est-ce que je dois avancer comme ça ?

La dernière fois tu parlais de passer à la version studio, qu'est-ce ça t'apporterai ? (moi je bosse sur la version pro) j'espère que ça ne te dérange pas, étant donné que c'est payant... et pour ton idée de vidéos, c'est toujours d'actualité ? :))
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

C'est toujours d'actualité pour les vidéos, faut juste que je me motive et ca prendra du temps car ca nécessitera une réécriture avant que se soit agréable à regarder.

Pour passer en version studio ca va me couter 10€ grace à une mise à jour de licence.

Pour apprendre, rien de mieux que de faire par étape. Si tu commences à partir dans tous les sens, tu feras rien de bien et tu mélangeras tout.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

Pour l'exercice 10 du tuto: faire bouger la view vers la droite, j'ai donc créé un objet "scrolling".
Dans son évenement CREATE j'ai créé une variable defilement et je l'ai initialisée à 1 (avec l'action Execute Code). Dans STEP j'ai mis le code suivant (toujours avec "Execute Code") : view_xview[0]+= defilement; ça fonctionne (en oubliant pas de placer l'objet dans la Room.)
J'ai aussi vu qu'en mettant juste view_xview[0]+= 1; ça fonctionnait sans passer par la création d'une variable et son initialisation dans CREATE.
Est-ce que c'est la bonne méthode ?
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

L'une te permet d'avoir un retour en mode debug l'autre non ( ou en tout cas pas directement ).

Après, libre à toi de faire comme tu veux ^^ Du moment que tu arrives à trouver une solution qui fonctionne et ne bug pas, c'est correct.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

Ok =) je préfère avoir un retour dans le debug, donc je garde la première alors.
Merci encore à toi Gunny de prendre du temps pour m'aider ! Je t'enverrai bien une paire de chaussettes pour te remercier :)) !!
Avatar de l’utilisateur
Radigo
Counter Stop
Messages : 7567
Inscription : 22 mai 2003, 17:31
Localisation : Paris
Contact :

Hop, je m'incruste.

Je suis en train de bidouiller Game Maker (j'ai eu la chance de rencontrer les gens qui le font cet été et ça m'a donné envie de tester).

Du coup j'ai une question à Gunny pendant que ça parle de debug : peux-tu me donner les grandes lignes des différentes façons de debugger un projet GM ? Y'a du pas à pas ?Un inspecteur de variables en temps réel ? C'est quoi le debug overlay ?

Concrètement je suis en train de bidouiller les ds_map et je tente de mettre des instances dedans pour accéder à n'importe quel objet d'un niveau par exemple (à partir d'une variable appelée self.truc_id que je pilote très précisément lors de l'instanciation, pas l'id généré automatiquement par GM). Comment je peux lister de façon pratique les éléments de mon ds_map, voir leur type, etc... Parce que j'ai l'impression de tâtonner en aveugle et c'est pas très agréable.

Merci d'avance !
"HYPER GAGE : 500%"
Image
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

Punaise ça y est j'ai eu mon premier vrai obstacle qui a fait que mon code ne fonctionnait pas et sur lequel j'ai buté pendant un moment... une bête erreur de logique :
Une variable que je n'avais pas pensé remettre à zéro. :x :x
Y'a bien eu le fameux EUREKA dont tu parlais quand j'ai trouvé c'qui clochait. Et après, la jubilation de voir que tout fonctionnait correctement ! allez jy retourne
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

Radigo a écrit :Hop, je m'incruste.

Je suis en train de bidouiller Game Maker (j'ai eu la chance de rencontrer les gens qui le font cet été et ça m'a donné envie de tester).

Du coup j'ai une question à Gunny pendant que ça parle de debug : peux-tu me donner les grandes lignes des différentes façons de debugger un projet GM ? Y'a du pas à pas ?Un inspecteur de variables en temps réel ? C'est quoi le debug overlay ?

Concrètement je suis en train de bidouiller les ds_map et je tente de mettre des instances dedans pour accéder à n'importe quel objet d'un niveau par exemple (à partir d'une variable appelée self.truc_id que je pilote très précisément lors de l'instanciation, pas l'id généré automatiquement par GM). Comment je peux lister de façon pratique les éléments de mon ds_map, voir leur type, etc... Parce que j'ai l'impression de tâtonner en aveugle et c'est pas très agréable.

Merci d'avance !
Houlaaaa t'es parti loin toi ! Très loin :D

Y a pas de gestion de la mémoire avec gamemaker. ( ou en tout ca pas directement comme tu tentes de le faire ) Et donc on a pas à implémenter de truc comme tu essaie de le faire.

Vaut mieux utiliser une approche "retour de fonction" plutot qu'une approche "smart pointer" si tu veux vraiment debugger qqc en profondeur et tester le code.

Je suis pas allé aussi loin avec GM. ( en même temps j'ai jamais eu besoin de vouloir gérer les ressources de cette manière )

Jvais te faire une petite vidéo du mode debug demain ou après demain.

On a un mode pas à pas, un inspecteur d'objet temps réel. Par contre, en version 8.1 ils sont encore assez rudimentaires et peu ergonomique ( mais ils font leur taf )
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Avatar de l’utilisateur
Radigo
Counter Stop
Messages : 7567
Inscription : 22 mai 2003, 17:31
Localisation : Paris
Contact :

Merci d'avance pour la vidéo. J'ai hâte !

Si je réussi à faire ce que je dis je posterai, ça peut être trèèèès utile.
"HYPER GAGE : 500%"
Image
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

Oui oui je vois l'intérêt, le problème, du moins en 8.1, c'est que les map, c'est super lent. Donc tant qu'on a du temps de calcul sous le pied, ca pose pas de soucis.

Comme il y a déjà un outil de debugging, j'ai jamais eu besoin de gérer les ressources manuellement comme tu le fais ^^

Les problèmes qui peuvent apparaitre sont du fait de l'implémentation de l'orienté objet.
Si je compare à du C++ :

Toute variable d'un objet est publique par défaut
Toute fonction d'un objet est publique par défaut

Donc quand je disais qu'il n'y avait pas d'encapsulation, c'était pas vraiment du chiqué :mrgreen:

Et j'ai pas trouvé comment rendre privé ces variables et fonctions.
Ca simplifie certaines choses, mais faut toujours garder ces deux points à l'esprit.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

Bon je suis passé à gamemaker studio standard, et il y a pas mal de truc qui ont changés niveau interface...
Le mode debug à changé un peu aussi...

Faut que j'aille récupérer d'anciens projets sur mon ancien disque dur ( qui contenait le tuto ) et je fais la vidéo.

Faut que je vois aussi pour changer l'interface, parce que du tout noir comme ca, c'est pas agréable pour moi travailler.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

Oui c'est vrai que l'interface noire sur studio est assez spéciale ...
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

J'ai pris un peu de retard sur la vidéo pour cause de soucis de micro ^^
J'essaie d'uploader la vidéo rapidement.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Avatar de l’utilisateur
Radigo
Counter Stop
Messages : 7567
Inscription : 22 mai 2003, 17:31
Localisation : Paris
Contact :

Wo, merci beaucoup, y'avait un message personnalisé en plus, c'est très sympa.

Je vois mieux les qualités du debugger et je pense que ça va m'être utile. Merci beaucoup.

Sinon j'ai réussi à faire ce que je voulais faire. Mais je vais ouvrir un autre topic pour éviter de polluer celui-qui est plus généraliste.
"HYPER GAGE : 500%"
Image
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

Y a les watch que j'ai pratiquement jamais utilisé donc j'en ai pas parlé.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

Je m'en vais y jeter un oeil aussi !
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

J'ai besoin de ton aide Gunny ! j'avance toujours sur mon projet, doucement, mais il y a un point sur lequel je bute : l'utilisation des manettes.

Je ne sais pas comment faire et par où commencer. l'utilisation serait simple il faudrait pour chaque perso sur une manette différente:
Mouvements dans 8 directions (joystick gauche) + choisir entre 3 directions de tir verticale, horiz, diagonale (joystick droit) + tirer avec une gâchette (R1 par exemple) + un bouton pour déclencher des aptitudes.

j'ai regardé un peu la documentation du logiciel et sur le net, mais rien n'y fais, jy capte que dalle ! j'sais pas quoi faire -__- ! j'espère que tu pourras m'aider
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

Faut que j'aille lire la doc et que je fasse un projet test...
Donc va falloir attendre.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

y a pas de problèmes!
De toute façon c'est pas primordiale pour constituer la bases des règles, en attendant je reste sur le clavier, je l'adapterai par la suite.
Merci à toi, je suis impatient =) !
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

Bon...
A première vue, le support des pads est issu de Xinput ( ca ne parlera qu'aux programmeurs confirmés ).

Un maximum de 4 contrôleurs est supporté sur des manettes types X360.
( note perso : utiliser Xinput est juste une connerie monumentale vu que ca ne supporte pas les contrôleurs PC correctement )

En sachant cela, La gestion des manettes se fait comme une programmation traditionnelle.
A savoir :

1) Détecter manuellement ce qui est connecter aux "slots"
2) Récupérer/assigner les ID des pads connectés sur les "slots"
3) Définir quel ID utiliser pour quel joueur
4) Faire un mapping des boutons

A première vue, la gestion du matos est hyper crade... On travail avec un "slots" plutot qu'un ID de pad...

Utiliser la version joystick sert strictement a rien.

edit :

Faites gaffe si vous lisez la doc de gamemaker...
Il y a des trucs juste n'importe kwesk !
Exemple :

Code : Tout sélectionner

for (var i = 0; i < gp_num; i++;)
    {
    if gamepad_is_connected(i) global.gp[i] = true else global.gp[i] = false;
    }
Déjà, c'est une notation utilisée pour ceux qui savent déjà programmer mais le pire, c'est le IF sans parenthèse ni accolade !
Après faut pas s'étonner que ca fonctionne pas...

Et les explications sont pourries comparées aux anciennes versions...
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

Bon pour l'instant j'ai pas tout compris mais je garde les étapes 1-4 de côté.

Je n'y connais pas grand chose en syntaxe mais il me semblait aussi avoir déjà vu des exemples un peu bizarres dans la doc qui fonctionnaient pas du tout ...

Pour ma part, j'utilise 'twin USB joystick' avec des manettes PS2. Avec le drag&drop j'avais testé ça fonctionnait. Mais est-ce que je suis quand même obligé de passer par une manette 360 avec un adaptateur ?
Aussi tu parles de 'slots' qu'est-ce que c'est ? et pourquoi on ne peut pas utiliser l'ID des pad alors que dans la doc ils en parlent ?
Enfin, j'te file un lien que j'ai trouvé sur le forum CBNA. C'est un fichier .gml avec des scripts pour utiliser une manette, je l'ai testé avec le twin et ça fonctionne! j'ai jeté un œil mais j'y pige pas grand chose et je n'arrive pas à l'adapter a mes besoins.

http://www.host-a.net/u/Caly/joystick_control.gmk > le fichier .GML
http://cbna.forumactif.com/t11593-les-exemples-de-caly > la page du forum
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

Question 1 :

Pas de soucis avec les pad reconnus par ton PC ( en théorie )

Question 2 :
Pour gamemaker, tu as 4 places dispo pour connecter des manettes. Ils sont appelés "slots". Il peut pas en gérer plus.

Question 3 :

J'ai jeté un oeil...
C'est normal que tu comprennes pas.
J'aurais sûrement fini avec un code similaire, mais j'aurais pas utilisé la même convention de nommage, histoire que les non programmeurs comprennent ce qui se passe et avec des explications dans les commentaires...
Sous GM studio, y a pas besoin de faire une grosse partie de ce qu'il a fait ( en tout cas y a une partie de son code que j'estime inutile ).
Et puis y a du code caché dans des "execute a piece of code". Donc faut fouiller les objets pour voir comment il gère ca...

En gros, son code, c'est du n'importe quoi... Il manque des parenthèses et des accolades ( peut-être dû à l'importation, mais c'est étonnant, le gml est en principe stocké en mode texte )...

J'essaie de te faire un truc pas trop dégueu' dès que je peux.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Karmer
Jeune Pad-awan
Messages : 40
Inscription : 23 nov. 2013, 01:10

Bon, ça me rassure, j'avais toujours un adaptateur de manette 360 mais je sais vraiment pas où il est ^^.
Du coup j'attends ton bout de code, encore une fois tu me sauves la vie ;)
Avatar de l’utilisateur
Alec
King Fossile
Messages : 15772
Inscription : 12 juil. 2004, 18:04
Localisation : nstc-j

moi, j'ai décidé de plus me prendre le chou, je vais trouver un moyen de lancer en même temps mon exe du jeu ET joytokey, je suis sûr que c'est possible (et c'est ce que je ferai ) le joueur aura juste à configurer joytokey une fois et ce sera tout!

J'ai essayé des config pad via gamemaker et à chaque fois ça me pourri mon gameplay, j'ai l'impression que pad et clavier ne sont pas égaux sous GM alors que pourtant ils devraient !


Ils pouvaient pas faire un truc simple genre :


"if pad (1) vk(right) machin truc....alors on va à droite"

(ça c'est du SAGML, du "simplified alec game maker language" :D )


On peut même pas faire ça c'est rageant, ils auraient du inclure un utilitaire pour gérer les pads, je veux dire, n'importe quel pad !
ImageImageImage
Gunny
Empereur Bydo
Messages : 3404
Inscription : 15 mai 2006, 15:26
Localisation : Rayon chaussettes du Kiabi du coin
Contact :

Code : Tout sélectionner

slots=gamepad_get_device_count();

for ( i=0 ; i < slots ; i++ )
{
    pad_connected=gamepad_is_connected(i);
    if ( pad_connected == 1 )
    {
        list_gamepad[i]=gamepad_get_description(i);
    }
}
Bon voilà une partie de l'étape d'initialisation. Pour des raisons de test, je recommande de mettre ca sur une touche pour exécuter le script.

La première ligne sert à connaitre le nombre de port manettes dispos.

La boucle "for":

Je stocke dans la variable "pad_connected" le résultat de la fonction "gamepad_is_connected" avec l'argument "i" de la boucle "for". "i" est l'itérateur de la boucle "for" ( le compteur de tour de la boucle si tu préfères ) et il est restreint par la variable "slots".

Ensuite, je vérifie s'il y a un pad connecté avec la variable "pad_connected". Et si c'est le cas, je stock le nom du pad avec "gamepad_get_description(i)" dans un tableau appelé "list_gamepad[]"

Avec ca, tu n'as rien fait, juste vérifié ce qui est connecté ou pas. Et c'est très important de le faire. Beaucoup de mécanismes utilisent un système d'initialisation du genre plus ou moins complexe.

L'utilisation d'un tableau n'est pas approprié si tu veux utiliser ces résultats plus tard de manière sûre et confortable. Mais faut que j'apprenne dans un premier temps l'utilisation des maps.

Et va falloir que je me batte avec la doc... Sérieux, c'est vraiment la mouise ste doc...

En mode debug, tu peux ajouter des "watch". ( j'ai trouvé l'utilité des watch )
Amuse-toi a brancher plusieurs pad ou non, et dans watch, tu ajoutes :
(ID_objet).list_gamepad[0]
(ID_objet).list_gamepad[1]
(ID_objet).list_gamepad[2]
(ID_objet).list_gamepad[3]

Et regarde les valeurs changer. Tu peux ainsi tester si le branchement à chaud ou non de pad fonctionne aussi ( pas testé trop la galère ).

edit : pour les watch, respecte ABSOLUMENT les parenthèses.
Si t'as un truc électronique cassé, ça se passe par là https://www.atelier-electrodd.fr/

-Je comprend rien à ce que tu dis...
-Pas grave... C'est pas en vivant plus longtemps qu'on deviens moins con.
Répondre