Nous développons un jeu de saut et d'exécution avec HTML5 et JavaScript et devons créer un propre cadre de jeu pour cela. Nous avons ici quelques difficultés et souhaitons vous demander quelques conseils:
Nous avons un objet "Stage", qui représente la racine de notre jeu et est un div-wrapper global. La scène peut contenir plusieurs «scènes», qui sont également des éléments div. Nous implémenterions une scène pour la tâche de lecture, pour la pause, etc. et basculer entre eux. Chaque scène peut donc contenir plusieurs "Layers", représentant une toile. Ces couches contiennent des "ObjectEntities", qui représentent des images ou d'autres formes comme des rectangles, etc. Chaque Objectentity a ses propres temporairesCanvas, pour pouvoir dessiner des images pour une entité, tandis qu'une autre contient un rectangle.
Nous définissons une scène active dans notre scène, donc lorsque le jeu est joué, seule la scène active est dessinée. Appel activeScene.draw()
, appelle toutes les sous-couches à dessiner, qui dessinent leurs entités (appel drawImage(entity.canvas)
). Mais est-ce une sorte de bonne pratique? Vous avez plusieurs toiles à dessiner? Chaque boucle de jeu, chaque contexte de couche est effacé et dessiné à nouveau. Par exemple, nous avons juste un calque d'arrière-plan,… ne serait-il pas plus utile de le dessiner une fois et de ne pas l'effacer à chaque fois et de le redessiner? Ou devrions-nous utiliser un canevas global par exemple dans la scène et simplement utiliser ce canevas pour dessiner? Mais nous pensions que ce serait trop cher ...