Exemplo n.º 1
0
        /// <summary>
        /// Alustetaan peli
        /// </summary>
        public override void Begin()
        {
            Level.Background.Color = Color.Black;

            double dy = Screen.Height / NY;       // Lasketaan ruudun korkeus pikseleinä
            int    nx = (int)(Screen.Width / dy); // ja montako mahtuu X-suuntaan
            int    ny = NY;

            sukupolvi         = new int[ny, nx];   //  Luodaan taulukot
            seuraavaSukupolvi = new int[ny, nx];
            oliot             = new GameObject[ny, nx];
            // seuraavaSukupolvi = sukupolvi;          // jos tämä on mukana, käyttäytyy eri tavalla

            LuoOliot(this, oliot);

            // IsFullScreen = true;

            timer.Interval = 0.1; // timeri antamaan tapahtuma 0.1 sek välein
            timer.Timeout += LaskeJaPiirraSeuraavaSukupolvi;
            timer.Start();

            ArvoSukupolvi();  // jos halutaan käynnistää automaattisesti

            Camera.ZoomToAllObjects();
            // Camera.Zoom(20);
            // Camera.Move(new Vector(Screen.Width/2, Screen.Height/2));

            // Kuuntelijat:
            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
            Keyboard.Listen(Key.Enter, ButtonState.Pressed, Jatka, "Jatka");
            Keyboard.Listen(Key.Space, ButtonState.Pressed, ArvoSukupolvi, "Arvo sukupolvi");
            Keyboard.Listen(Key.Delete, ButtonState.Pressed, TyhjennaSukupolvi, "Tyhjennä sukupolvi");
            Keyboard.Listen(Key.Right, ButtonState.Pressed, LaskeJaPiirraSeuraavaSukupolvi, "Seuraava sukupolvi");
            Keyboard.Listen(Key.Left, ButtonState.Pressed, PiirraEdellinenSukupolvi, "Edellinen sukupolvi");
            Mouse.IsCursorVisible = true;
            Mouse.Listen(MouseButton.Left, ButtonState.Pressed, HiiriPainettu, null);
            Mouse.Listen(MouseButton.Right, ButtonState.Pressed, delegate { Jatka(); }, "Jatka");

            TouchPanel.Listen(ButtonState.Pressed, NayttoaPainettu, null);
            TouchPanel.ListenGesture(GestureType.DoubleTap, delegate { Jatka(); }, "Jatka");
            TouchPanel.ListenGesture(GestureType.VerticalDrag, delegate { TyhjennaSukupolvi(); }, "Tyhjennä taulukko");
            TouchPanel.ListenGesture(GestureType.HorizontalDrag, delegate { ArvoSukupolvi(); }, "Arvo sukupolvi");
            Accelerometer.Listen(AccelerometerDirection.Shake, delegate { ArvoSukupolvi(); }, "Arvo sukupolvi");
            PhoneBackButton.Listen(Exit, "Lopeta peli");
        }