lundi 28 août 2017

#02 Tuto AppGameKit 2 - Bouger un sprite avec son doigt

EDITO
Vous vous souvenez de mon tuto sur la création d'un sprite sur AGK2?
Et bien on reprend le même et on s'amuse à le faire bouger. 

CE QUE NOUS VOULONS FAIRE
Déplacer notre sprite avec son doigt sur l'écran


MISE EN PLACE
Nous reprendrons le même exemple que pour le #01 Tuto AppGameKit 2


CODE
On ajoute quelques lignes...soyez vigilants!

_______________________________________________________________________________

// Project: Sprite
// Created: 2017-08-19

// show all errors

SetErrorMode(2)

// set window properties
SetWindowTitle( "Sprite" )
SetWindowSize( 1024, 768, 0 )
SetWindowAllowResize( 1 ) // allow the user to resize the window

// set display properties
SetVirtualResolution( 1024, 768 ) // doesn't have to match the window
SetOrientationAllowed( 1, 1, 1, 1 ) // allow both portrait and landscape on mobile devices
SetSyncRate( 60, 0 ) // 30fps instead of 60 to save battery
SetScissor( 0,0,0,0 ) // use the maximum available screen space, no black borders
UseNewDefaultFonts( 1 ) // since version 2.0.22 we can use nicer default fonts

    Sprite = CreateSprite(0)
    SetSpriteSize        (Sprite,50,50)
    SetSpritePosition  (Sprite,100,100)
    SetSpriteColor      (Sprite,255,255,255,255)
    SetSpriteVisible    (Sprite,1)


do


    if ( GetPointerPressed ( ) = 1 )
       
    x_pointer = GetPointerX()
    y_pointer = GetPointerY()
       
    x = GetSpriteX(Sprite)
    y = GetSpriteY(Sprite)
   
    bougeX = x_pointer - x
    bougeY = y_pointer - y
       
    SetSpritePosition    (Sprite,x+bougeX,y+bougeY)
       
    endif


    Print( ScreenFPS() )
    Sync()
loop

_____________________________________________________________________________________ 

EXPLICATIONS
Les lignes noires sont des lignes de codes
Les lignes grisées sont des lignes de commentaires, elles servent donc à commenter la ligne de code car on peut vite se perdre quand on dépasse un certain nombre de lignes.
Les lignes bleues sont des lignes de codes. Ce sont les lignes que j'ai ajouter pour le tuto.


   
if ( GetPointerPressed ( ) = 1 ) ... endif (le endif se trouve à la fin)
C'est notre condition pour savoir si on clique avec la souris sur l'écran ou que l'on touche avec notre doigt l'écran tactile.
On commence avec un "if" et on termine avec un "endif"
Comme une boucle, tout ce que se trouve à l'intérieur (entre If et endif) fait parti de la condition.

Il faut lire : Si j'appuie sur l'écran avec un doigt ou le pointeur de la souris il se passera ce que j'ai décris entre le "if" et le "endif" 
 
    x_pointer = GetPointerX()
    y_pointer = GetPointerY()

Justement, voici les 2 premières instructions que nous appelons dans notre condition.
Dans la variable "x_pointer" nous enregistrons la valeur du GetPointerX(). Il s'agit de la position en X de notre doigt ou du pointeur de la souris.
Vous l'aurez compris "y_pointer" enregistre la position en Y.

   
x = GetSpriteX(Sprite)
    y = GetSpriteY(Sprite)

Nous allons maintenant enregistrer dans les variables "x" et "y" la position du Sprite actuelle.
 
   
bougeX = x_pointer - x
    bougeY = y_pointer - y

bougeX et bougeY sont les résultats des distances entre le point ou l'on veut mettre notre sprite sur l'écran et la position actuel du sprite
 
   
SetSpritePosition    (Sprite,x+bougeX,y+bougeY)
Il nous reste à repositionner notre sprite en appelant SetSpritePosition
On reprend la position actuel "x" et "y" et on ajoute la distance calculé avec "bougeX" et "bougeY"

CONCLUSION
Nouvelle étape en douceur. Les possibilités sont nombreuses. On peut bien sur arriver à ce résultat avec une autre approche.

Vous cherchez à faire quelque chose de précis, vous pouvez me le demander en commentaire.

#AGK2 

1 commentaire:

  1. Salut, je viens de découvrir tes Tuttos, merci, ça aide !!
    Je cherche un truc super simple..placer des players musicaux sur une page, Ave un fond, qui serait une simple image.
    Est ce possible?
    Merci

    RépondreSupprimer