Skip to content

📝 Blog

A La Découverte De Phaser - 3

Dans les arcanes de game.add.sprite , un nouvel objet Phaser.Sprite est créé et le sprite est ajoutĂ© au “monde du jeu”. Ce monde est l’endroit oĂč tous vos objets vont vivre, cela peut ĂȘtre comparĂ© Ă  un Stage de ActionScript3.

Note : Le monde de jeu n’a pas de taille fixe et s’étend Ă  l’infini dans toutes les directions, avec le point 0,0 au centre. Par commoditĂ©, Phaser positionne le 0,0 en haut et Ă  gauche de votre monde, mais vous pouvez le dĂ©placer Ă  l’aide de l’objet Camera intĂ©grĂ©.

La classe reprĂ©sentant le monde est accessible par l’objet game.world et est fournie avec un tas de mĂ©thodes et propriĂ©tĂ©s pratiques pour vous aider Ă  rĂ©partir vos objets au sein du monde.
Cela comprend quelques propriétés simples comme game.world.height , mais aussi certaines plus élaborées que nous utiliserons dans un autre tutoriel.

Pour le moment, construisons notre scĂšne en ajoutant un fond et des plate-formes.
Voici une version plus Ă  jour de la fonction create :

var platforms;

function create() {

    //  We're going to be using physics, so enable the Arcade Physics system
    game.physics.startSystem(Phaser.Physics.ARCADE);

    //  A simple background for our game
    game.add.sprite(0, 0, 'sky');

    //  The platforms group contains the ground and the 2 ledges we can jump on
    platforms = game.add.group();

    //  We will enable physics for any object that is created in this group
    platforms.enableBody = true;

    // Here we create the ground.
    var ground = platforms.create(0, game.world.height - 64, 'ground');

    //  Scale it to fit the width of the game (the original sprite is 400x32 in size)
    ground.scale.setTo(2, 2);

    //  This stops it from falling away when you jump on it
    ground.body.immovable = true;

    //  Now let's create two ledges
    var ledge = platforms.create(400, 400, 'ground');

    ledge.body.immovable = true;

    ledge = platforms.create(-150, 250, 'ground');

    ledge.body.immovable = true;

}

Si vous exĂ©cutez ce code, que vous trouverez dans le fichier part4.html du zip du tutoriel, vous devriez voir un Ă©cran qui ressemble un peu plus Ă  une scĂšne d’un jeu :

part4

La premiĂšre partie est identique Ă  ce que nous avions fait pour l’étoile, nous avons simplement changĂ© la clĂ© en ‘sky’ et cela a permis d’afficher notre ciel en fond d’écran Ă  la place.
C’est une image au format PNG de dimensions 800x600 qui remplit notre Ă©cran.

A bientĂŽt

VoilĂ , je vous laisse avec la traduction qui correspond Ă  la partie 4 et, comme promis, je continue au plus vite.

Entre temps, ne soyez pas timides : laissez des commentaires ou écrivez moi et surtout amusez vous !

A La Découverte De Phaser - 2

AprĂšs la petite introduction du pourquoi de ma traductionCette fois c’est parti : je traduirai au mieux, quitte Ă  adapter en Ă©crivant avec mes mots et en utilisant parfois NdT pour Note du Traducteur. Il est probable que j’utilise certains termes techniques anglais, ça n’a pas toujours de sens de tout traduire.

Faire un jeu avec Phaser

d’aprĂšs le tutoriel en anglais Ă©crit par Alvin Ourad et Richard Davey.
Original disponible en suivant ce lien

Bienvenue dans ce premier tutoriel sur Faire un Jeu avec Phaser (NdT : c’est moche comme ça non ? ;). Nous allons apprendre comment crĂ©er un petit jeu mettant en scĂšne un joueur courant et sautant sur des plateformes en collectant des Ă©toiles. Au cours de notre petit pĂ©riple, nous expliquerons quelques unes des fonctions au coeur de ce framework.

Qu’est ce que Phaser ?

Phaser est un framework de jeu HTML5 qui vise Ă  aider les dĂ©veloppeurs Ă  produire de jeux puissants, fonctionnants sur les navigateurs HTML5, de maniĂšre vraiment rapide et, au contraire d’autres, il a Ă©tĂ© conçu avec les navigateurs mobiles pour cible. Le seul prĂ©requis pour le navigateur est le support du tag canvas. Il emprunte beaucoup de choses Ă  Flixel.

Prérequis

  • TĂ©lĂ©chargez les fichiers de code et les ressources qui vont avec ce tutoriel.
  • Vous avez besoin de connaissances trĂšs trĂšs basiques de JavaScript. (NdT : mais chez TontonCodeur, on fera tout pour vous aider lĂ  dessus)
  • Prenez Ă©galement le temps de parcourir le Getting Started Guide, vous y apprendrez comment tĂ©lĂ©charger le framework, mettre en place un environnement de dĂ©veloppement, et vous donner un aperçu de la structure d’un projet Phaser et ses fonctionnalitĂ©s principales.

ATTENTION, ajout de la traduction: Je rĂ©flĂ©chis Ă  une solution vous permettant simplement de lancer le tutoriel et de manipuler ses fichiers. Entre temps, n’hĂ©sitez surtout pas Ă  me poser toutes les questions qui vous viendrons pendant ces installations.

Si vous avez suivi le Getting Started Guide, vous avez tĂ©lĂ©chargĂ© Phaser et tout installĂ© aux petits oignons : vous ĂȘtes prĂȘts Ă  coder. TĂ©lĂ©chargez les fichiers de ce tutoriel et dĂ©compressez les dans votre rĂ©pertoire web.

Ouvrez le fichier part1.html dans l’éditeur de texte de votre choix et allons regarder de plus prĂšs le code. AprĂšs un peu de blabla HTML qui inclus Phaser, la structure du code ressemble Ă  ceci :

var game = new Phaser.Game(800, 600, Phaser.AUTO, '', { preload: preload, create: create, update: update });

function preload() {
}

function create() {
}

function update() {
}

La ligne 1 est celle qui donne vie Ă  Phaser en crĂ©ant une instance de l’objet Phaser.Game et en l’assignant Ă  une variable locale appelĂ©e ‘game’. L’appeler ‘game’ est une pratique usuelle, mais pas une obligation, et c’est ce que vous retrouverez dans les exemples de Phaser.

Les 2 premiers paramĂštres sont la largeur et la hauteur de l’élĂ©ment Canvas que Phaser va crĂ©er. Dans le cas prĂ©sent, 800 x 600 pixels. Le monde de votre jeu avoir la taille que vous souhaitez, mais il s’agit de la rĂ©solution dans laquelle le jeu sera affichĂ©.
Le troisĂšme paramĂštre peut valoir Phaser.CANVAS, Phaser.WEBGL ou Phaser.AUTO. Cela dĂ©finit le contexte de rendu que vous voulez utiliser. Le paramĂštre recommandĂ© est Phaser.AUTO puisqu’il permet de commencer par essayer Phaser.WEBGL, mais si le navigateur ou la machine ne le supporte pas, cela basculera automatiquement sur Phaser.CANVAS.

Le quatriĂšme paramĂštre est une chaine vide, c’est l’ID de l’élĂ©ment DOM dans lequel vous allez insĂ©rer l’élĂ©ment canvas que Phaser crĂ©e. Comme nous l’avons laissĂ© vide, il va simplement s’ajouter au corps de la page. Le dernier paramĂštre est un objet comportant quatre rĂ©fĂ©rences Ă  des fonctions principales de Phaser. Leur utilisation va vous ĂȘtre dĂ©taillĂ©e ci-aprĂšs. Notez que cet objet ‘game’ n’est pas absolument nĂ©cessaire : Phaser supporte un systĂšme en full state permettant de rĂ©partir le code dans des objets sĂ©parĂ©s bien plus clairs. Mais pour un simple Guide de DĂ©marrage comme celui ci, nous utiliserons cette approche qui nous permet de prototyper plus rapidement.

Chargement des ressources

Chargeons maintenant les ressources nécessaires à notre jeu. Vous faites ça en utilisant des appels à game.load au sein de la fonction appellée preload. Phaser cherchera automatiquement cette fonction à son lancement et chargera tout ce qui sera défini en son sein.

Pour le moment, la fonction preload est vide. Modifions la:

function preload() {

    game.load.image('sky', 'assets/sky.png');
    game.load.image('ground', 'assets/platform.png');
    game.load.image('star', 'assets/star.png');
    game.load.spritesheet('dude', 'assets/dude.png', 32, 48);

}

Cela chargera 4 ressources (NdT: ou asset en anglais) : 3 images et une page de sprite. Cela peut paraĂźtre Ă©vident Ă  certains d’entre vous, mais je voudrais souligner le premier paramĂštre, appelĂ© aussi clĂ© de ressource (NdT: asset key). Cette chaine de caractĂšres est un lien vers la ressource chargĂ©e et c’est ce que vous allez utiliser dans votre code au moment de crĂ©er les sprites. Vous ĂȘtes libres d’utiliser n’importe quelle chaine de caractĂšres valide en Javascript comme clĂ©.

CrĂ©ation d’un Sprite

Pour ajouter un Sprite Ă  notre jeu, ajoutez le code suivant dans la fonction create :

game.add.sprite(0, 0, 'star');

Si vous ouvrez la page page3.html dans un navigateur, vous devriez voir un Ă©cran de jeu noir avec un seul sprite d’étoile dans le coin en haut Ă  gauche:

part3

L’ordre dans lequel les Ă©lĂ©ments sont gĂ©nĂ©rĂ©s dans l’affichage correspond Ă  l’ordre dans lequel vous les crĂ©ez. Donc, si vous souhaitez mettre un fond derriĂšre le sprite Ă©toile, vous devez vous assurer qu’il a Ă©tĂ© ajoutĂ© comme sprite, avant l’étoile.

A bientĂŽt

Voilà, je vous laisse avec la traduction qui correspond aux part1 à 3 et je vous promet de continuer au plus vite bien sûr.

Entre temps, ne soyez pas timides : laissez des commentaires ou écrivez moi.

A La Découverte De Phaser - 1

AprĂšs l’atelier MixTeen durant MixIT (je vous raconterai peut ĂȘtre un de ces 4), j’ai eu envie de faire comme les enfants : faire un jeu.

Comme j’avais assistĂ© Ă  la confĂ©rence de Laurent Victorino qui poussait Ă  faire des jeux, et celle de Tristan Nitot qui plaidait pour que le web soit la plateforme mobile, j’ai fait une sauce de tout ça et me suit lancĂ© dans le dĂ©veloppement de ce qui devrait ĂȘtre un jeu HTML5.

Comme j’aime bien passer des heures Ă  apprendre plein de choses, j’ai commencĂ© par chercher ce qui se faisait dans ce monde qui est bien loin de mes souvenirs de HTML 4 et de ce que gĂ©nĂšre le framework Java que j’utilise au travail.

J’ai trouvĂ© des outils qui me rappelaient les Game Creator de ma jeunesse comme Construct 2, Tululoo ou bien sĂ»r Phaser.

La liste n’est pas exhaustive et n’hĂ©sitez pas Ă  regarder ce que donne une recherche de Game creator Html5.
Chaque outil a ses particularitĂ©s, certains ne fonctionnent que sous Windows, certains n’ont pas beaucoup de documentation
 que chacun trouve son bonheur, c’est passionnant.

J’ai volontairement mis de cĂŽtĂ© Unity mĂȘme si ça me plairait bien de m’y plonger Ă©galement.

Mais revenons Ă  Phaser.
Un des points qui m’a dĂ©cidĂ© est un sympathique tutoriel Making your first Phaser game.

Si l’anglais ne vous pose pas de souci, filez lire et utiliser l’original, Alvin Ourad et Richard Davey ont fait un excellent travail.

Mais dis donc Tonton Codeur, pourquoi faire un article si tu nous envoie faire l’original ?
Et bien, tout d’abord, il va falloir Ă  vous y habituer, je fais souvent comme je veux, surtout sur mon propre blog ;). Ensuite, il y a quand mĂȘme pas mal d’entre vous qui prĂ©fĂšrent travailler sĂ©parement leur anglais et leur code.
MĂȘme s’il serait prĂ©fĂ©rable de vous forcer un peu, je ne vois pas pourquoi vous seriez privĂ© de cet excellent tutoriel.
Il est comme ça votre Tonton Codeur, il ne vous abandonne pas !

Avant tout, je tiens Ă  remercier Alvin qui m’a autorisĂ© Ă  traduire et publier la traduction de son tutoriel.
Je tacherai de bien respecter l’original, si ce n’est pas le cas, n’hĂ©sites pas, Tonton Codeur sait reconnaitre ses fautes (normalement :) )

Allez, c’est suffisament long pour un article de blabla, je vous dit à trùùùùs bientît pour les premiers pas avec Phaser.

SmartRap - Build

After months waiting for it, here comes my 3D printer.
To be precise, I received the parts and needed to build it.

DSC03651DSC03654

Yes, lot of works. But everything looks well prepared.
First steps were quick, no bad surprise.

DSC03660

Until some missing screws.

DSC03661

The creator of the SmartRap is very kind and reactive, and after some new screws from him and my personal stock, here we go again.

DSC03664

At some point, I even built something I can plug :)

DSC03676

To be honest, this post is just a short version of several weeks.
I spend a lot of time on other tasks, some professional, some for the family and some for kids coding event ;)
I hope to post very soon some pictures of my first print !