Ejemplo n.º 1
0
        /// <summary>
        /// Effettua il setup del controllo grafico.
        /// </summary>
        /// <param name="FPS">Massima quantità fissata di frame disegnati al secondo</param>
        private void setup(byte FPS)
        {
            /* Impostazioni come controllo grafico:
             * Metto il double buffering, così da ridurre il flickering
             * Rendo il controllo tale da riempire tutto il clientsize del padre (client size = spazio dove mettere i controlli figli)
             * Aggiungo un colore solido al background
             */
            this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
            this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
            this.Dock      = DockStyle.Fill;
            this.BackColor = SystemColors.ControlDarkDark;

            /* Impostazioni come GameViewport:
             * Setting del Frame Per Second Rate
             * Setting del Milliseconds Per Frame (in funzione del FPSRate)
             */
            if (FPS <= 10)
            {
                FPS = 10;
            }
            this.fpsRate = FPS;
            this.mspF    = 1000 / this.fpsRate;

            //Creo il cronometro utile per la temporizzazione.
            this.timer = new Stopwatch();

            //Creo la coda di eventi "mouse e keyboard"
            this.queue = new KeyboardMouseEventBundle();
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Dispatcha la gestione della coda degli eventi alla scena attiva, se c'è.
        /// </summary>
        /// <param name="bundle">Coda degli eventi passata al gestore.</param>
        public void HandleEvent(KeyboardMouseEventBundle bundle)
        {
            IIndipendentlyAnimable scene = this.getScene(selectedID);

            if (scene != null)
            {
                scene.HandleEvent(bundle);
            }
            else
            {
                Console.WriteLine("Il bundle sembra vuoto...");
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Gestisce la coda di eventi passata come parametro, modificandola.
 /// </summary>
 /// <param name="bundle">Coda di eventi passata al gestore</param>
 abstract public void HandleEvent(KeyboardMouseEventBundle bundle);