Développement API - Pierre Blarre
Dans le fichier main.mjs
, nous allons maintenant utiliser la classe Balles
pour mainpuler la canvas et le DOM.
1import { Balles } from './classes/Balles.mjs'; // Importe la classe Balles depuis le fichier Balles.mjs2
3// Éléments du DOM4const canvas = document.querySelector('canvas');5const startButton = document.querySelector('#start');6const stopButton = document.querySelector('#stop');7const clearButton = document.querySelector('#clear');8const spanNombreBalles = document.querySelector('#balls-count');9
10let nombreInitialDeBalles = 5;11
12// Crée une nouvelle instance de la classe Balles13let balles = new Balles(canvas, nombreInitialDeBalles, window.innerWidth, window.innerHeight);14
15// Appelle la méthode render de l'instance balles16balles.render();17
18// Met à jour le contenu de l'élément spanNombreBalles avec le nombre de balles19spanNombreBalles.textContent = balles.nombreBalles;20
21// Écoute l'événement resize (redimensionnement) sur la fenêtre31 collapsed lines
22// Met à jour la largeur et la hauteur du canvas avec la largeur et la hauteur de la fenêtre23window.addEventListener('resize', () => {24 balles.width = window.innerWidth;25 balles.height = window.innerHeight;26});27
28// Écoute l'événement click sur le canvas29// Ajoute une nouvelle balle à la position de la souris30canvas.addEventListener('click', (event) => {31 balles.ajouterBalle(event.clientX, event.clientY);32 spanNombreBalles.textContent = balles.nombreBalles; // Met à jour le nombre de balles33});34
35// Écoute l'événement click sur le bouton start36// Appelle la méthode demarrer de l'instance balles37startButton.addEventListener('click', function () {38 balles.demarrer();39});40
41// Écoute l'événement click sur le bouton stop42// Appelle la méthode stop de l'instance balles43stopButton.addEventListener('click', function () {44 balles.stop();45});46
47// Écoute l'événement click sur le bouton clear48// Appelle la méthode reinitialiser de l'instance balles49clearButton.addEventListener('click', function () {50 balles.reinitialiser();51 spanNombreBalles.textContent = balles.nombreBalles;52});
Prenez un moment pour étudier le code princpal de l’application.
Git
Il serait judicieux de créer un dépôt git
pour versionner notre projet.
Si vous utilisez VSCode, vous pouvez créer un dépôt et le déployer sur Github directement depuis l’interface.
Sinon, vous pouvez utiliser les commandes suivantes pour :
- initialiser un dépôt git :
git init
- créer un commit initial :
git add .git commit -m "Initial commit"
- ajouter un dépôt distant (Pensez à modifier l’url du dépôt, celle-ci est un exemple) :
git remote add origin git@github.com:User/UserRepo.git
- pousser le code sur le dépôt distant :
git push -u origin main
Conclusion
Dans cette première partie du tutoriel, nous avons :
- créé une architecture html basique.
- encapsulé les balles dans des classes d’objets
Balle
etBalles
. - utilisé ces classes pour gérer l’animation des balles dans le canvas.
- séparé la logique de l’animation des balles de la logique de l’interface utilisateur.
De plus, nous avons en réalité utilisé d’autres API que Canvas :
DOM
pour manipuler les éléments HTML.RequestAnimationFrame
pour animer les balles.Math
pour générer des nombres aléatoires.Event
pour gérer les événements utilisateur.
Vous devriez maintenant avoir une application frontend fonctionnelle.
Nous allons laisser cette partie de côté pour le moment et commencer à développer la partie backend de notre application.