Editorial
|
Bienvenue sur Le CBNA!
Nous accueillons avec plaisir vos yeux sur nos pages, sur
la section GameMaker du CBNA!
Si vous êtes ici, c'est en théorie car vous avez envie de
créer un jeu video, ou bien vous cherchez de l'aide, ou encore
vous désirez philosopher avec les membres dans la Section Spirituelle, ou
vous êtes un artiste et désirez partager vos oeuvres dans
la Section
CBN'Art.
Bon, il est tout aussi possible nous vous l'accordons que vous soyez
tombé ici par hasard, mais ce n'est pas grave nous vous accueillons!
Notre But aujourd'hui est de promouvoir la programmation
en France, avec GameMaker entre autre, ou plutôt de partager nos
connaissances en programmation, nos techniques, et aussi de nous
enrichir, de vous enrichir et d'enrichir le contenu du site avec vos
créations et vos conseils.
Nous proposons des Tutoriels, des gm6 et gmd (Codes sources), des
scripts, des DLL, des Librairies... Tous créés par des
utilisateurs de GameMaker prêts à vous aider.
Aussi ces utilisateurs publient leurs jeux sur le site pour se faire
connaître et pour faire avancer la communauté.
Vous êtes certainement comme eux, puisque "eux" c'est vous! Oui,
vous qui lisez ces mots, vous pouvez dès maintenant envoyer vos
jeux, vos Scripts, vos Tutoriels, vos gm6 et gmd, vos DLL, vos
Librairies ou même dans la Section Spirituelle ou dans la Section
CBN'Art nous faire part de vos textes, images, états
d'esprits, vos opinions sur les Evènements actuels...
Aussi Le CBNA ce n'est pas que du travail, c'est aussi un espace de
détente, de rire, de plaisir... nous vous invitons donc à
venir parler sur le forum, participer à sa vie, à ses
activités...
Merci à vous d'avoir
pris le temps de lire ces quelques lignes...
|
News
|
Tutoriel : Débuter avec Game Maker
|
I. Le commencement Pour commencer vérifier que la case « Advanced mode » est bien coché dans le menu « file » même si il est recommandé de débuter en mode normal commencer par le mode avancé va vous permettre de découvrir plus d’actions et de possibilités et de toute façon mieux vaut commencer tôt que tard. Le projet que nous allons réaliser avec ce tutoriel est un casse-briques de 3 niveaux. Pourquoi un casse-briques me direz-vous ? Tout simplement parce que le casse-brique est un jeu très facile à réaliser et qu’il va vous permettre de voir beaucoup de chose. Et surtout, par la suite vous pourrez l’améliorer pour qu’il soit encore mieux.
II. Vocabulaire Pour commencer rien de mieux qu’un peu de vocabulaire. Vous l’aurez peut-être remarqué mais dans le volet de gauche se trouve une arborescence de plusieurs dossiers : il s’agit là de tous les éléments qui vont composer le projet. Le premier dossier nommé « sprites » est le dossier dans lequel vous allez ranger toutes les images de jeu (hors arrière-plan), la plupart du temps ces images seront celles d’objets. Vous pourrez également ranger dedans des animations. Le second dossier nommé « sounds » est le dossier dans lequel vous rangerez tous les sons et musiques de jeu. Le troisième dossier nommé « background » est le dossier dans lequel vous rangerez tous les arrière-plans (background) et également les tilesets (je reviendrai dessus un peu plus tard mais pour ce projet nous n’en aurons pas besoin).
Le quatrième dossier nommé « paths » est le dossier dans lequel vous rangerez des « trajets » que certains objets pourront emprunter. Le cinquième nommé « scripts » est le dossier dans lequel vous rangerez des scripts autrement dit des morceaux de code qui vous permettrons de faire plus de chose qu’avec les commandes classiques. Le sixième nommé « fonts » est le dossier dans lequel vous aller enregistrer vos différents paramètres d’écriture de texte. Le septième nommé « time lines » est le dossier dans lequel vous aller ranger des frises chronologiques qui permettront de faire des actions à certain moment du jeu. Le huitième et sans doute le plus important nommé « Object » est le dossier dans lequel va se trouver tous les objets qui composeront le jeu. Un objet est un élément qui exécute différentes commandes (déplacement, attaque, …) selon différentes conditions (appuie sur une touche, …). Le dernier nommé « rooms » est l’endroit dans lequel seront stockés tous les niveaux composant votre jeu (nous aurons donc 3 rooms)
III. Passons aux choses sérieuses Maintenant que les bases sont posées, il est temps de commencer notre projet ! Tout d’abord nous allons récupérer des sprites. Commencer par cliquer sur l’icône en haut dans la barre d’outil avec une tête de pacman rouge (juste à droite du Play de couleur rouge), cette icône vous permet de rajouter des sprites. S’affiche alors une petite fenêtre cliquez sur « load sprite » pour récupérer un sprite enregistré sur l’ordinateur (à noter que tous les sprites que nous utiliserons sont fourni avec le logiciel) allez ensuite dans le dossier « bouncing ball » et récupérer le fichier nommé « ball_pinball », valider et vous verrez l’image s’afficher dans la fenêtre. Entrer un nom pour le sprite (par exemple : ball) Ajouter un autre sprite avec la même méthode (récupérer le fichier « bat_large », aller ensuite dans le dossier « stones », et récupérer le fichier « stone_normal_red », retourner dans le dossier « sprites » puis aller dans « maze – plateform » pour récupérer « wall_block ») Nous avons donc 4 sprites désormais, il est temps de créer des objets ! Cliquez sur l’icône en forme de sphère bleu. Une nouvelle fenêtre apparait et il est temps de définir les quelques termes importants :
- Pour commencer vous pouvez changer le nom de l’objet (le nom doit être différent du nom d’autres ressources telles que les sprites)
- Juste en dessous vous pouvez définir le sprite de l’objet
- Un peu plus bas vous pourrez régler différent paramètre comme la visibilité de l’objet (certain objet peuvent être invisible), la solidité de l’objet, la profondeur (depth) celle-ci permet de déterminer quand l’objet sera créer (nous y reviendrons), et vous pouvez également dire si votre objet est « persistent », si c’est le cas il restera dans tous les niveaux de jeu à partir du niveau dans lequel il apparait (alors que les autres objets disparaitront au
prochain niveau)
- Vous pouvez régler également l’objet parent, c'est-à-dire l’objet qui va transmettre à l’objet actuel tous ces événements
- Au final vous pouvez changer le « mask » de l’objet. Le mask est en fait la zone de collision de l’objet, elle est définie avec le sprite mais vous pouvez très bien utiliser une zone d’un autre sprite différent à celui de l’objet.
- Le bouton « show information » vous montre un récapitulatif de tous les paramètres de l’objet, et le bouton ok vous permet d’enregistrer les modifications et de fermer la fenêtre.
Commençons donc par régler la balle : entrer le nom de l’objet (le nom doit être différent de celui du sprite pour éviter des bugs), choisissez le sprite de la balle, laissez visible coché, solid décoché et persistent décoché également, laissez la profondeur à 0, pas besoin de régler également le parent et le mask. Nous allons donc continuer, cliquer sur « add event » pour ajouter un événement (event). Un menu avec plusieurs type d’event apparait, cliquer alors sur « key press » et sélectionnez « space », vous l’aurez peut-être compris cet event ne se déclenche uniquement lorsque le joueur appuie sur la barre espace. Dans la liste de gauche est apparu votre event key press space, maintenant tous se passe dans la liste de droite que nous allons remplir. Tout à droite vous avez peut-être remarqué différent boutons et différents onglets, voici donc les actions principales qu’un objet utilise très souvent. Prenez le tout premier icône avec les flèches rouges dans toutes les directions faites le glisser dans la liste de droite un menu de réglage apparait. Vous allez régler le mouvement de la balle, cliquer sur les 2 flèches diagonales en haut et choisissez une vitesse (je conseille la vitesse 4), laisser relative décoché et valider une action est apparu dans la liste, et désormais lorsque vous appuierez sur espace la balle partiras avec une vitesse de 4 dans une des deux directions choisi (sois diagonales haut gauche sois diagonale haut droite). Pour les curieux qui se demandent à quoi servent la case relative et les cases en haut de la fenêtre, c’est simple, ces-dernières en haut servent à régler à qui s’applique l’action (par défaut « self » autrement dit l’objet qui possède l’action) et la case relative sert à rajouter un mouvement au mouvement précédent (la case relative correspond donc au +). Fermer la fenêtre est ajouter un nouvel objet avec le sprite du mur, cochez la case solid ce coup-ci, valider et retourner sur l’objet de la balle, ajouter un event, cliquer sur collision et sélectionner l’objet mur dans le premier onglet des actions ajouter celle avec l’icône de rebond (la dernière de la rubrique « jump »), a « precise » sélectionnez « precisely », valider et désormais votre balle pourra rebondir contre les murs ! Reste un problème important, si vous testiez le jeu vous vous rendrez compte que à chaque pression du joueur sur le bouton espace la balle repartirez dans une des 2 diagonales vers le haut. Pour éviter cela nous allons utiliser une variable (plus précisément une variable interrupteur). Ajouter un event et cliquer sur create (cet event ne s’exécute que lorsque l’objet est créé) aller dans l’onglet des actions « control » et sélectionner l’icône carré avec VAR marqué dessus. Entrer alors le nom de votre variable (attention certaines variables existe déjà et vous ne pouvez réutiliser 2 fois le même nom sans créer de bug, de même vous ne pouvez insérer de caractères spéciaux, pour cette variable entrer le nom « lancement » par exemple (pour éviter les bugs entrer le nom des variables en français car les variables existantes sont en anglais, attention tout de même aux mots transparents)), remplacer ensuite la valeur de la variable par « false ». Aller ensuite dans l’event key press space de l’objet et rajouter avant l’action de mouvement l’icône hexagonale avec marqué VAR de l’onglet control, dans le nom entrer le nom de votre variable, dans le champ value entrer la valeur « false », et valider. Maintenant il faut modifier à nouveau la variable, ajouter donc une action de modification, entrer le nom de la variable et entrer la valeur « true ». Cependant il y a encore un problème une condition (votre test de variable en est une (si lancement = false alors …)) ne s’applique uniquement qu’à l’action qui la suit ou au block qui la suit. Pour que les 2 actions suivantes interviennent uniquement si la condition est respectée nous allons insérer un début de block avant ces 2 actions, pour cela utilisez la flèche vers le haut dans la rubrique other, utiliser maintenant la flèche vers le bas que vous insérerez après les 2 actions afin de refermer le block. Mais ce n’est pas encore fini, il faut maintenant paramétrer notre raquette. Faites un nouvel objet solide et permanent (en cochant donc persistent) avec le sprite de la raquette, entrer un nom, et ajouter un event « key press left » a l’intérieur ajouter un mouvement vers la gauche à la vitesse souhaité. Ajouter ensuite un event, cliquer sur key release (touche relâché) et choisissez left, ajouter un mouvement, cliquer alors sur le carrée au centre et laisser la vitesse à 0, de cette manière la raquette ne se déplacera à gauche uniquement si vous maintenait la flèche gauche enfoncé. Régler de la même façon le mouvement vers la droite. Ajouter un event collision avec la balle et ajouter une action rebond, régler le « precise » sur « precisely » est en haut cocher la case « other » à la place de « self », de cette manière le rebond ne s’applique pas à la raquette (self) mais aux autres objets concernés par l’event (other), en l’occurrence la balle. Ajouter un event create et aller dans l’onglet « score » ajouter l’icône carrée grise avec un cœur (la première de la rubrique lives), dans les paramètres régler le nombre de vie à 3. Afin que désormais le joueur perde de la vie lorsqu’il rate la balle, ajouter un event, cliquer sur « other » et sélectionner « no more lives » (= plus assez de vie) et ajouter ceci comme action :
- Dans l’onglet main2 ajouter l’action avec la bulle (la première de la rubrique info), et entrer un texte comme « Game over », il s’agit du message que le joueur recevra.
- Dans l’onglet score ajouter l’action avec une liste numérotée comme icône (avant dernièrede la première rubrique, attention celle qui n’est pas barrée), celle-ci permettra au joueurd’enregistre son score si il a atteint un record. Ne changer pas les réglages et laisser lesréglages par défaut.
- De nouveau dans main2 ajouter l’action avec les 2 flèches vertes en forme de cercles (la
première de la rubrique Game), celle-ci relancera le jeu depuis le début.
Aller dans l’objet balle, ajouter un autre event, cliquer sur other et sur « outside room » (= en dehors du niveau). Ajouter comme actions un mouvement nul (pas de vitesse, c'est-à-dire que la balle ne doit plus bouger), ajouter ensuite l’action avec une flèche qui part d’une croix et qui va vers une ampoule (la seconde de la rubrique « jump »), ajouter ensuite l’action dans l’onglet score avec un cœur dans un carrée gris et ajouter comme valeur -1 et cocher la case relative de cette manière le calcul suivant se produira : nombre de vie + (-1) = nombre de vie -1 Ajouter ensuite l’action de modification de variable, taper le nom de la variable de lancement (dans l’exemple « lancement ») et mettez la valeur false. Fermer en enregistrant les modifications, toutes les fenêtres d’ouvertes. Cliquer ensuite sur la disquette dans la barre d’outil en haut pour sauvegarder le jeu.
IV. Premier niveau et test du jeu Bon, nous avons suffisamment d’éléments pour faire un premier niveau ! Cliquer sur l’icône de la barre d’outil avec un carrée blanc (juste à coté de celle de l’objet), une nouvelle fenêtre apparait mettez la en taille maximale en cliquant sur l’icône carrée de la fenêtre, à gauche se trouve le volet de paramétrage, cliquer sur l’onglet settings et changer le nom de la room (remplacer le par exemple par niveau_1, attention aucun espace), la ligne en dessous permet d’afficher un texte sur le haut de la fenêtre, le reste est pour l’instant régler par défaut et mieux vaut ne pas le toucher. Revenez sur l’onglet objet, cliquer sur la grande zone qui est apparu pour voir un menu apparaitre sélectionner alors l’objet mur, cliquer ensuite sur la room (zone avec le quadrillage) l’endroit ou vous voulez le placez, pour le moment placez un mur tout autour du niveau (pour insérer plusieurs objets en maintenant cliquer maintenait MAJ enfoncé), laissez tout de même aucun mur sur le bas. Si jamais vous vous trompez utiliser le clic droit pour effacer un objet. Sélectionnez maintenant l’objet de la raquette placez la sur le troisième carreau en partant du bas le plus centré possible, posez maintenant la boule au centre de la raquette. Valider et fermer la fenêtre. Il est temps de tester, cliquer sur le Play de couleur verte en haut dans la barre d’outil (nous verrons à quoi sert le rouge un peu plus tard), le jeu s’ouvre et votre boule est posée sur la raquette. Pour commencer bouger la raquette vers la gauche et la droite, vous remarquerez que la boule ne suit pas, il va falloir le régler ! Appuyez sur espace pour lancer la boule, attendez que la boule redescende et appuyez de nouveau sur espace, le mouvement ne change pas, vous avez également constaté que la boule rebondissait contre un mur ou contre votre raquette. Faites exprès de laisser la boule vous échapper 3 fois (à chaque fois elle reviendra à sa position initiale et vous pourrez la relancer avec espace) vous verrez alors s’afficher votre message de Game over, les meilleurs scores et le jeu redémarrera. Appuyez sur echap pour fermer le jeu et retourner sur sa création. Avant de poursuivre nous allons voir à quoi sert le fameux Play rouge, cliquer dessus pour lancer le jeu en mode « debug » une autre fenêtre est apparu, il s’agit de la fenêtre de debug, vous pouvez avec les icones de gauche à droite : reprendre le jeu, mettre le jeu en pause, avancer le jeu d’une seul frame (une seul image, 30 images = 1 seconde), redémarrer le jeu, arrêter le jeu, ajouter une variable/expression, changer la valeur de la variable/expression, effacer l’affichage de la variable/expression, effacez toutes les variables/expressions de la fenêtre. Vous l’aurez compris avec cette fenêtre vous allez pouvoir voir vos variable, si jamais il y a un bug, ajouter donc la variable suivante : . Voilà donc qu’il va vous falloir retenir le nom des objets et des variables. Si vous avez réussi la variable sera à la valeur 0 (=false) et 1 (=true) lorsque la balle sera en mouvement. Cliquer maintenant sur le menu « Tools », cliquer ensuite sur « show local variable », entrer le nom de la boule et vous verrez une nouvelle fenêtre dans lequel va s’afficher en temps réel toutes les variables (celle que vous aves programmer et celle qui existe déjà) dedans. Fermer cette petite fenêtre retourner dans tools et cliquer sur « show global variable », vous verrez alors dans cette nouvelle fenêtre toutes les variables globales du jeu : une variable globale est une variable qui s’applique à aucun objet et qui ne change pas avec les niveaux (vous trouverez dedans par exemple les vies). Nous verrons plus tard comment créer ces variables globales, fermez le jeu.
V. Correction Vous l’auriez compris, ce n’est pas encore ça ! Corrigeons donc ces quelques problèmes que nous avons constatés, retournons dans l’objet raquette et dans l’event create, le nombre de vie est définie mais le joueur ne peux pas le voir, aller dans l’onglet score et ajouter la dernière action, à « show lives » changer « don’t show » par « show », valider. Retournons à présent dans la balle, de la même manière que pour la raquette paramétrer le mouvement à droite et à gauche à la même vitesse que pour la raquette, ajouter juste dans les event key press (left & right) au tout début un test variable et testez la variable de lancement de façon à ce que sa valeur soit égale à false. Egalement, aller dans l’objet de la balle et dans l’event « outside room », juste après « jump to start », ajouter une autre action « jump to start » et cocher en haut la case Object à la place de self et sélectionnez l’objet raquette, de cette manière, lorsque la balle sort elle revient à sa position initiale tout comme la raquette. Testez à présent le jeu pour constater les changements (les vies et le scores s’affiches sur le haut de la fenêtre, c’est un « Windows caption »). Facultatif : à la place de montrer les vies dans le bord de fenêtre (car elle ne seront plus visible en plein écran) mettez dans l’action concerné « don’t show » partout y compris au score, ajouter un event draw sur un nouvel objet permanent et ajouter l’action avec un cœur sur fon orange/marron et idem pour le score (l’icône de score est 3 boules jaunes), régler la position x (horizontale en pixel) et y (verticale en pixel) où vous voulez que le score et les vies s’affichent (afin de mieux repérer des endroits, aller dans une room et regarder la grille, chaque carreau mesure 16 par 16 pixels, de plus positionnez la souris à un endroit pour que les positions x et y s’affichent en bas, attention cette dernière ne fonctionne pas par pixels mais par 16 pixels, soit un carreau).
VI. Nouveaux éléments Il est maintenant temps de s’attaquer à un nouvel objet, l’objet de la brique, attribuez le nom, cochez la case solid, et ajouter un event collision avec la balle, ajouter une action rebond que vous appliquerez aux autres objets (other) et qui sera précis (precisely). Ajoutez ensuite l’action de l’onglet score avec les 3 balles jaunes sur fond gris (dans un carrée) et ajouter 10 dans la valeur et cocher « relative ». De cette manière pour chaque brique détruite le joueur gagne 10 points de score. Ajouter maintenant l’action dans l’onglet main1 avec l’icône de la corbeille, il s’agit de l’action « instance destroy ». Valider sans changer l’application. Aller dans la room du premier niveau et positionnez quelques briques dedans, valider et tester votre casse-brique. C’est déjà mieux ! Il est temps d’apporter des modifications, ajouter un sprite, récupérer l’image (dans le dossier bouncing ball puis stones) nommée « stone_damaged3_red », aller maintenant dans l’objet de la brique ajouter une event create dans lequel vous ajouterez une modification de variable, donnez lui un nom (par exemple « casse ») et régler la valeur à 0. Allez maintenant dans l’event collision avec la balle, et ajouter cela :
- Au début ajouter une modification de variable avec le nom de la variable (ici « casse ») et changer la valeur par 1 en cochant la case relative.
- Ajouter juste après un test variable qui dit : si casse = 1
- Ajouter un début de block
- Ajouter une modification de score avec comme valeur 5 et relative cochée
- Ajouter l’action avec l’icône de sprite de l’onglet main1 et sélectionnez le sprite de la brique endommagée
- Ajouter la fin de block
- Ajouter un nouveau test de variable qui dit : si casse = 2
- Ajouter un début de block
- Placer ici l’instance destroy, et la modification de score de +10 points
- Ajouter la fin de block
- Le reste des actions se place au début avant la modification de variable
Testez le jeu et vous vous apercevrez qu’il faut désormais taper 2 fois chaque brique pour qu’elles se détruisent. Ajoutons maintenant de la musique : cliquer sur l’icône du haut-parleur et sur load sound dans la fenêtre récupérer le fichier nommé « music » dans le dossier « tutorial1 », de retour sur la fenêtre cliquer sur « background music » et valider (le reste des options n’est disponible qu’ne version pro). Aller dans l’objet raquette et dans l’event create, ajouter l’action dans main1 et cliquer sur l’icône du haut-parleur (en forme de carrée), sélectionner la musique et régler « loop » sur « true », de cette manière la musique se lira en boucle. Testez le jeu, ce n’est probablement pas la meilleur musique mais pour ce tutoriel elle suffira. Manque plus, qu’un jolie arrière plan, cliquer sur l’icône d’image de la barre d’outil puis sur « load background » choisissez votre arrière-plan et valider, aller dans la room, puis sur l’onglet background vous verrez vers le bas un endroit avec marqué « no background » cliquer dessus et choisissez votre arrière-plan. Vous pouvez définir jusqu’à 8 arrière plan par room. Les 3 dernières cases à cocher permettent dans l’ordre : de dupliquer l’arrière plan de manière horizontale, de dupliquer l’arrière plan de manière verticale, d’étirer le background pour qu’il prenne les dimensions de la room. Testez le jeu et vous constaterez que c’est mieux que le fond tout gris de base.
VII. Un nouveau niveau ! Paramétrer maintenant une seconde room, ajouter les murs, les briques et la balle au même endroit que dans le précédent niveau (la raquette étant permanente est automatiquement déplacé sur les rooms suivantes). Régler le background et fermez. Aller désormais dans l’objet balle, dans l’event create ajouter un « jump to position » juste avant « jump to start », régler les coordonnées de bases de la raquette (celle qui correspondent aux coordonnées de la raquette dans le premier niveau) et changer l’application en le remplaçant par Object : raquette. Créer un nouvel objet, cocher la case persistent et ne lui donner pas de sprite (ou si vous tenez à ce qu’il en est un décochez la case visible) ajouter un event, cliquer sur step et sélectionner de nouveau step. Cet event se réalise à chaque étape du jeu, une étape dure quelques frames (moins de 1 secondes) et correspond approximativement à l’actualisation du jeu, cet event s’exécute donc en permanence (ou presque mais vous vous croirez qu’il s’exécute en permanence). Ajouter l’action dans l’onglet control avec l’icône de l’objet et les chiffres dessous (il s’agit de la quatrième) il s’agit de l’action « test instance count » (= test du nombre d’instances) sélectionner l’objet de la brique et laisser le reste des paramètres, validez. Vous venez de paramétrer une nouvelle type de condition (celle-ci se lit : si le nombre de briques = 0). De la même manière il va falloir insérer un block. Faites le (insérer le début et la fin) et aller dans l’onglet main1 ajouter la seconde action de la rubrique rooms. Choisissez si vous le souhaiter un effet dans les paramètres de l’action. Placez ce nouvel objet dans la première room, et testez le jeu, lorsque toute les briques seront détruites vous accéderez au niveau suivant.
VIII. Le dernier niveau Vous l’aurez compris créez une nouvelle room et ajouter des briques. Retournez dans l’objet invisible qui permet de changer de niveau, vous l’aurez peut-être remarqué si vous terminer le second niveau une erreur apparait en disant qu’il n’y a pas de room existante après celle-ci, dorénavant cela ne produira qu’au troisième niveau, aller dans le seul event existant (step) et rajouter au début du block la dernière action de l’onglet main1 (il s’agit s’une condition donc rajouter un début et fin de block englobant l’action aller à la room suivante) après le block de cette seconde condition ajoutez l’action else de l’onglet control (il y a marqué else sur l’icône), cette action et l’inverse de la condition précédente (else = sinon). Autrement dit la condition se lit désormais comme ceci : si il y a une room après, … , sinon … Les trois petits points correspondent aux actions exécutées. Rajouter après le else une action d’affichage message avec comme message quelque chose comme « bravo ! », puis ajouter l’action d’affichage des meilleurs scores, puis ajouter l’action de redémarrage du jeu. Ça devrait donner ceci :
- Si le nombre de briques = 0, alors,
- Start block
- S’il y a une room après, alors,
- Start block
- Aller à la room suivante
- End block
- Else
- Message : « bravo ! »
- Affichage des meilleurs scores
- Redémarrage du jeu
- End block
Testez votre jeu et lorsque vous terminerez le dernier niveau votre message s’affichera, vous pourrez peut-être enregistrer un meilleur score et le jeu redémarrera.
À suivre... |
12/07/2015 par hyper |
0 Commentaires
|
|
|
[Archives News 2005] [Archives News début 2006]
|
Base de données des Jeux:
Opérationnelle
Base de données
des logiciels: Opérationnelle
Base de données des GMD: Opérationnelle
Base de données des GM6: Opérationnelle
Base de données des Librairies: Opérationnelle
Base de données des DLL: Opérationnelle
Base de données
des Moteurs: Opérationnelle
Contenu Général du CBNA: Opérationnelle
Base de données Forum: Opérationnelle
|