Introduction
Installation du moteur
Commençons par le début, à savoir récupérer la dernière version du moteur : Moteur Dina
Pour l'utiliser, vous devez décompresser l'archive directement dans le répertoire de votre (futur) jeu ET avoir au même niveau que votre fichier main.lua un répertoire nommé Dina.
Voici ce que vous devriez obtenir :

La liste exhaustive des fichiers présents dans chacun des sous-répertoires de se trouve dans la Documentation.
Initialisation du moteur
En premier lieu, on va initialiser Dina. Pour cela, nous allons charger sa structure principale dans une variable comme le code ci-dessous :
local Dina = require('Dina')
Nous allons vérifier sa bonne initialisation en rajoutant, juste en dessous, la ligne suivante :
print(Dina)
Vous devriez obtenir dans la console quelque chose ressemblant à ceci :
Dina - Game Engine (c)
v[X].[Y].[Z]
https://dina.lacombedominique.com/
Copyright (c) [AAAA] LACOMBE Dominique
ZLIB Licence
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Maintenant que nous avons initialisé le moteur, nous allons lui rajouter quelques composants car actuellement, il ne peut rien faire.
Liste des composants
Toutefois, avant d'ajouter des composants au moteur, il est important de savoir quels sont les composants disponibles (à partir de la version 3.0.0).
Ces composants ont été regroupés en plusieurs sous-répertoires :
- Core qui contient les différents éléments de base tels que :
- Base qui est l'élément source de tous les autres éléments (exception faite des managers)
- Manager qui est l'élément source de tous les managers
- Graphics qui contient tous les éléments affichables tels que :
- Button pour les boutons
- CheckBox pour les cases à cocher
- Group pour gérer des groupes d'éléments
- Image (pas besoin d'explications)
- InputText pour pouvoir saisir du texte (nom de joueur, nom du hi-score, etc.)
- Panel qui est l'élément source de tous les éléments de GUI et quelques autres
- ProgressBar qui permet de faire des jauges (de vie, d'action, etc.)
- Slider qui permet de positionner un curseur entre une valeur minimum et maximum
- Text qui affiche un texte à l'écran
- Levels qui contient le gestionnaire de cartes issues de Tiled (LevelManager)
- Controllers qui permet de prendre en charger le clavier et les gamepads
- Controller qui se charge de dispatcher les traitements selon l'entrée reçue
- Gamepad qui se charge des gamepads
- Keyboard qui se charge du clavier
- Mouse qui se charge de la souris (en cours de développement)
- etc.
D'autres se rajouteront au fur et à mesure des développements.
Description du fonctionnement du moteur
Le moteur comprend plusieurs fonctions (voir la documentation et les tutoriels) mais je ne vais me concentrer que sur les 2 plus importantes :
- Update
- Draw
Fonction Update
Cette fonction permet de lancer la fonction update de l'état courant (si au moins un état a été défini). Dans le cas contraire, il lance la fonction update chacun des composants chargés.
Si la fonction update n'existe pas dans le composant, aucune erreur n'est générée et la fonction passe au composant suivant.
Fonction Draw
Cette fonction permet de lancer la fonction draw de l'état courant (si au moins un état a été défini). Dans le cas contraire, il lance la fonction draw de chacun des composants chargés.
Si la fonction draw n'existe pas dans le composant, aucune erreur n'est générée et la fonction passe au composant suivant.
Création d'un nouveau composant
Pour vous expliquer comment créer un composant, je vais utiliser le composant Text.
C'est un composant relativement simple qui nous permettra de découvrir une première utilisation du moteur.
Après l'initialisation du moteur indiqué tout au début, on va rajouter la ligne suivante dans la fonction love.load :
Dina("Text", "Hello World !")
Note : le type du composant n'est pas sensible à la casse.
Par exemple, le code ci-dessous donnera le même résultat que le code précédent :
Dina("teXt", "Hello World !")
La ligne que je viens de vous faire rajouter crée un nouveau composant Text contenant "Hello World !".
Par défaut, le texte est automatiquement visible à l'écran à la position (0,0). Nous allons donc l'afficher.
Pour cela, nous allons rajouter la ligne ci-dessous dans la fonction love.draw :
Dina:draw()
Normalement, vous devriez avoir le code ci-dessous dans votre fichier main.lua :
-- Initialisation du moteur
local Dina = require('Dina')
function love.load()
-- Création d'un composant Text "Hello World !"
Dina("Text", "Hello World !")
end
function love.update(dt)
end
function love.draw()
Dina:draw()
end
Et en l'exécutant, vous devez obtenir le résultat suivant :

Voilà, vous avez réussi à utiliser le moteur Dina !
Il ne vous reste plus qu'à comprendre les autres composants pour bien vous approprier le moteur et réaliser des jeux beaucoup plus rapidement.
Me contacter