Une librairie (ou bibliothèque) est un ensemble de code que tout le monde peut utiliser pour ajouter certaines fonctionnalités à son projet.
Essayons une bibliothèque. Nous allons utiliser la librairie tick créée par rxi. Vous pouvez la trouver sur GitHub.
Cliquez sur tick.lua, puis sur Raw et copiez tout le code.
Allez dans votre éditeur de texte, créez un nouveau fichier appelé tick.lua et collez-y le code.
Maintenant, nous allons suivre les instructions sur la page GitHub. Premièrement, nous devons charger le code avec require :
|
|
Notez que nous n’avons pas mis de parenthèses autour de l’argument de require. C’est parce que nous n’avons passé qu’un seul argument, et dans ce cas, les parenthèses sont facultatives en Lua. Je vous recommande toutefois de toujours utiliser les parenthèses pour toutes les autres fonctions afin d’assurer la clarté du code.
Ensuite, nous devons appeler tick.update(dt) dans notre fonction de mise à jour :
|
|
Maintenant, nous sommes prêts à utiliser la librairie. Faisons en sorte de dessiner un rectangle après 2 secondes :
|
|
Est-ce que nous avons bien passé une fonction comme argument ?
Tout à fait ! Pourquoi ce ne serait pas possible ?
Une fonction est un type de variable après tout. Comme vous pouvez le voir, avec cette librairie, nous pouvons facilement ajouter des délais d’exécution.
Il existe des centaines de bibliothèques avec toutes sortes de fonctionnalités utiles !
Ne vous sentez pas coupable d’utiliser une bibliothèque. À moins d’être intéressé par l’apprentissage du fonctionnement interne, pourquoi réinventer la roue ?
J’utilise personnellement une dizaine de bibliothèques dans mes projets. Elles me fournissent des fonctionnalités que je ne comprends pas forcément ou dont je ne suis pas intéressé à connaître les détails d’implémentation.
Les bibliothèques ne sont pas magiques. C’est simplement du code que vous et moi aurions pu écrire aussi. Nous en créerons une plus tard pour comprendre leur fonctionnement.
Les bibliothèques standards
Lua possède des bibliothèques intégrées. Elles sont appelées les bibliothèques standards. Ce sont des fonctions qui sont intégrées dans le langage Lua. Par exemple, print fait partie de la bibliothèque standard, tout comme table.insert et table.remove.
Une bibliothèque standard importante que nous n’avons pas encore utilisée est la bibliothèque math. Elle fournit des fonctions mathématiques qui peuvent être très utiles lors de la réalisation d’un jeu. Par exemple, math.random nous donne un nombre aléatoire. Utilisons-la pour placer un rectangle à une position aléatoire chaque fois que vous appuyez sur la barre d’espace :
|
|
Voici quelques autres fonctions utiles de la bibliothèque math :
- math.floor(x) : Arrondit x à l’entier inférieur
- math.ceil(x) : Arrondit x à l’entier supérieur
- math.min(x, …) : Retourne la plus petite valeur parmi les arguments
- math.max(x, …) : Retourne la plus grande valeur parmi les arguments
- math.abs(x) : Retourne la valeur absolue de x
- math.sin(x), math.cos(x), math.tan(x) : Fonctions trigonométriques
- math.deg(x) : Convertit des radians en degrés
- math.rad(x) : Convertit des degrés en radians
Maintenant que nous avons compris comment fonctionnent les bibliothèques, nous pouvons commencer à utiliser une bibliothèque pour la gestion des classes dans les prochains chapitres.
Résumé
Les bibliothèques sont des ensembles de code qui nous fournissent des fonctionnalités supplémentaires. N’importe qui peut créer une bibliothèque. Lua possède également des bibliothèques intégrées, appelées bibliothèques standards, qui offrent des fonctionnalités de base comme les opérations mathématiques et la manipulation des tables. L’utilisation de bibliothèques bien établies nous permet de développer des jeux plus rapidement sans avoir à réimplémenter des fonctionnalités courantes.