Bonjour,
Je lis avec intérêt le tutoriel Créer un jeu HTML5 avec Quintus. Je tente de créer le code pendant ma lecture, mais je rencontre un problème dès le début…
J’ai téléchargé un .zip depuis le repo GitHub de Quintus. Lorsque je lance le fichier index.html de l’exemple "Quintus-master\examples\ball", cela ne fonctionne pas, ce qui me semble déjà étrange.
J’ai essayé de créer le code de base pour créer un fond orange, et ça ne fonctionne pas non plus. J’ai essayé en important directement le "quintus-all" depuis le CDN, mais sans succès non plus.
Qu’est-ce que je fais de mal ? Je dois installer un serveur pour que ça fonctionne (pour l’instant je lance l’HTML comme ça) ? Le lien vers la lib n’est pas bon ?
Merci d’avance pour votre aide, et merci pour le tuto
Voici mon code :
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Quintus</title>
<link rel="stylesheet" href="style.css" />
<script src="lib/quintus.js"></script>
<script src="xian-xiang.js"></script>
</head>
<body>
<canvas id="game" width="300" height="320">
<p lang="fr">Votre navigateur ne supporte pas la balise canvas.</p>
</canvas>
</body>
</html>
body{
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
background-color: #F3FBFD;
}
canvas{
width: 300px;
height: 320px;
background-color: #fff;
border: 1px solid #56B7C1;
border-left-width: 3px;
border-top-width: 3px;
border-radius: 3px;
margin: auto;
}
p {
margin: 8px 0;
}
var Q = new Quintus({
development: true // On lance le mode développement, pour forcer le refresh des assets (images, fichiers JSON…). Attention à bien désactiver cela une fois en production !
})
Q.include([ // On indique quels composants inclure de base
Quintus.Sprites, // Pour gérer les sprites (les calques en gros)
Quintus.Scenes, // Pour gérer les scenes (les différentes pages, pour faire simple)
Quintus.Anim, // Pour gérer les animations (sur des sprites, par exemple)
Quintus['2D'], // Pour gérer la 2D : permet d'avoir des ennemis qui se déplacent et de détecter les collisions automatiquement
Quintus.Input, // Pour gérer les contrôles (certains contrôles sont inclus de base, c'est assez pratique)
Quintus.Touch, // Pour gérer les contrôles via une surcouche tactile (avec un joypad si nécessaire — c'est paramétrable)
Quintus.UI // Pour afficher des boutons, du texte, etc.
])
var Q = new Quintus(/* Vos paramètres */).include([ /* Les composants */ ]);
/* Le premier paramètre permet d'indiquer l'id de notre canvas, vous pouvez aussi passer directement un objet du DOM ou ne rien spécifier si vous voulez que la librairie crée un canvas pour vous */
Q.setup('game', {
maximize: false, // Inutile de modifier la taille du canvas (`true` permet d'étendre à toute la surface disponible)
width: 300, // Largeur de base
height: 320 // Hauteur de base
});
Q.controls();
Q.touch();
Q.scene('startGame', function(stage) { // On crée une nouvelle scène que l'on nomme. Une fois affichée la fonction sera appelée, avec en paramètre notre objet scène (dont on récupèrera quelques infos et auquel on balancera quelques objets)
console.log('Écran de lancement affiché');
});
Q.stageScene('startGame', 0); // On affiche notre scène au rang 0, soit tout en bas de la pile (pensez à des calques, comme sous votre logiciel de dessin préféré ou à un z-index en CSS)
var sprite_bg = new Q.Sprite({ x: 0, y: 0, w: Q.width, h: Q.height, type: Q.SPRITE_UI });
sprite_bg.draw = function(ctx) { // Au moment de dessiner le sprite, on récupère le contexte 2D du canvas pour dessiner librement
ctx.fillStyle = '#e0b232'; // On veut du jaune
ctx.fillRect(this.p.x, this.p.y, this.p.w, this.p.h); // On dessine un rectangle de la taille du sprite
}
stage.insert(sprite_bg);