Stiamo sviluppando un gioco Jump and Run con HTML5 e JavaScript e per questo dobbiamo creare un framework di gioco personalizzato. Qui abbiamo alcune difficoltà e vorremmo chiederti un consiglio:
Abbiamo un oggetto "Stage", che rappresenta la radice del nostro gioco ed è un div-wrapper globale. Lo stage può contenere più "Scene", che sono anche div-elementi. Vorremmo implementare una scena per l'attività di gioco, per la pausa, ecc. E passare da una all'altra. Ogni scena può quindi contenere più "Livelli", che rappresentano una tela. Questi Layer contengono "ObjectEntities", che rappresentano immagini o altre forme come rettangoli, ecc. Ogni Objectentity ha i propri TemporaryCanvas, per poter disegnare immagini per un'entità, mentre un'altra contiene un rettangolo.
Abbiamo impostato una scena attiva nel nostro stage, quindi quando si gioca, viene disegnata solo la scena attiva. Chiamare activeScene.draw()
, chiama tutti i sublayers per disegnare, che disegnano le loro entità (call drawImage(entity.canvas)
). Ma è una specie di buona pratica? Hai più tele da disegnare? Ogni ciclo di gioco ogni contesto di livello viene cancellato e disegnato di nuovo. Ad esempio, abbiamo solo un livello di sfondo ancora, ... non sarebbe più utile disegnarlo una volta e non cancellarlo ogni volta e ridisegnarlo? O dovremmo usare una tela globale per esempio nello stage e usare questa tela solo per disegnare? Ma abbiamo pensato che sarebbe stato costoso ...