Home      Downloads             Documentation      FAQ     

Documentation>Tutoriel > Etape 2

Lecture des touches (interaction avec l'utilisateur)

La lecture des touches est une chose très simple avec ETP. Mais si vous n'avez jamais programmé, vous vous demandez peut-être où doit-on ajouter la gestion des touches. Nous devons l'ajouter dans la procédure MapDisplay. En réalité la procédure MapDisplay va être le coeur du jeu, toutes les actions, les interactions seront gerées dedans. Pour tester quelque chose, nous devons utiliser le mot clé "If". Il s'agit d'un mot clé qu'on retrouve dans pas mal de langages. En ETP-Basic, la syntaxe d'un test est la suivante:

If condition1 Then
...bla bla bla
EndIf

L'équivalent en langue française de ceci serait:

If condition1 Then Si la condition1 est vraie alors...
...bla bla bla ...fait bla bla bla
EndIf J'ai fini de dire ce que j'avais à dire

Dans notre cas, nous voulons dire: "Si l'utilisateur appuie sur la touche de Flèche Haut, déplace l'hélicoptère vers le haut"

La condition est donc KEY89_UP, c'est une fonction interne à ETP-Basic qui retourne "Vrai" si l'utilisateur est en train d'appuyer sur la flèche Haut, et "Faux" sinon. Nous savons donc que nous devons écrire:

If KEY89_UP  Then
...bla bla bla
EndIf

A une différence près, au lieu d'écrire "...bla bla bla", nous devons lui dire de déplacer le sprite. Rappelez-vous du moment où nous avons inseré le sprite helicopter dans le map. Nous avions dit que cela revenait à déclarer une variable de nom helicopter1 (que nous pouvons changer dans le map editor) et de type helicopter qui est un sprite. Ce syllogisme nous amène incontestablement à l'affirmation suivante: helicopter1 est un sprite! Nous nous en doutions un peu, mais grâce à ce raisonnement rigoureux, nous en sommes sûrs. Grâce à ETP-Basic, vous pouvez changer les propriétés de ce sprite, par exemple sa position. Pour déplacer le sprite helicopter1 de façon à avoir 30 pixels en coordonnée horizontale, il suffit de taper

      helicopter1.x = 30

 

C'est exactement ce dont nous avons besoin dans ce cas. Nous voulons déplacer le sprite vers le haut, il faut donc diminuer sa propriété Y, car Y désigne la coordonnée vertical descendante. Il faut donc taper

helicopter1.y = helicopter1.y - 1

Après les modifications, le code de la procédure MapDisplay doit être la suivante:

Procedure MapDisplay

    ScreenInit	'This internal macro initializes the display

    Do
        ScreenRender	'This internal macro displays sprites
    
    'TO DO: Place your gameplay code here
		
    Wait 1
		
    If KEY89_UP  Then
        helicopter1.y = helicopter1.y - 1
    EndIf
	

    Loop While  Not(KEY89_ESC)

Ce code ne gère que la touche de flèche Haut. Ajoutons la gestion des autres touches de manière analogue.

Le code devient:

Procedure MapDisplay

    ScreenInit	'This internal macro initializes the display

    Do
        ScreenRender	'This internal macro displays sprites
    
    'TO DO: Place your gameplay code here
		
        Wait 1
		
        If KEY89_UP  Then
            helicopter1.y = helicopter1.y - 1
        EndIf
        If KEY89_DOWN  Then
            helicopter1.y = helicopter1.y + 1
        EndIf
        If KEY89_LEFT  Then
            helicopter1.x = helicopter1.x - 1
        EndIf
        If KEY89_RIGHT  Then
            helicopter1.x = helicopter1.x + 1
        EndIf

    Loop While  Not(KEY89_ESC)

 

Compilez en appuyant sur F8 et envoyez l'éxécutable sur la calculatrice.

Avec seulement quelques lignes de code, vous avez votre sprite animé qui peut se déplacer avec les touches!

Télécharger le projet helico_step2

La suite>>>

 

   

 

 

     
    About ETP Contact Us