Le but de cette activité est de permettre à l'utilisateur d'interagir avec le programme par l'intermédiaire du clavier.

Avec Phaser il est très facile de détecter quand une touche est "enfoncée" :

La méthode "isDown" renvoie true si la touche passée en paramètre de la méthode "isDown" est enfoncée.


game.input.keyboard.isDown(Phaser.Keyboard.A)
			

renvoie true si la touche A est enfoncée (et false si la touche A n'est pas enfoncée).

À faire vous même 4.1

Testez et analysez le programme suivant :



var game = new Phaser.Game(800,600,Phaser.AUTO,'content',{preload: preload, create: create,update:update});
function preload(){
    game.load.image('smiley','asset/smiley.png');
}
function create(){
    monSprite=game.add.sprite(0,0,'smiley');
    monSprite.anchor.setTo (0.5,0.5) ;
    monSprite.x=400;
    monSprite.y=300;
}
function update(){
    if (game.input.keyboard.isDown(Phaser.Keyboard.A)==true){
        monSprite.angle=monSprite.angle+5
    }
}
			

Comme vous pouvez le constater dans l'exemple du "À faire vous même 4.1", le sprite tourne quand la touche A est enfoncée.

Notez que le "if" qui teste si la touche A est enfoncée se trouve dans la fonction "update" : il faut que "le test de l'appui sur la touche A" soit effectué à chaque image.

Pour tester les flèches du clavier :

À faire vous même 4.2

Faire les modifications nécessaires pour permettre à l'utilisateur de déplacer le smiley dans les 4 directions (gauche, droite, haut et bas) à l'aide des flèches du clavier.

N.B. il est évidemment possible d'utiliser les touches correspondants à des chiffres, par exemple la touche 1 s'écrira : "Phaser.Keyboard.ONE".


À faire vous même 4.3

Il y aura à l'écran 2 sprites (2 smileys) : un contrôlé par le joueur (touches clavier) et un qui décrira une trajectoire rectiligne uniforme . Le joueur devra "attraper" le plus rapidement possible le 2e smiley (l'ennemi).

Pour vous aider : on pourra considérer que l'ennemi est "capturé" si la distance entre les centres des smileys est inférieure à une certaine valeur que vous devrez déterminer. Si le centre de l'objet1 a pour coordonnées x1,y1 et que l'objet2 a pour coordonnées x2,y2, d'après le théorème de Pythagore.

La distance entre les centres d est égale à √((x2-x1)²+(y2-y1)²)