/// <summary> /// Asetetaan ohjaimet varsinaista peliä varten /// </summary> private void AsetaOhjaimet() { Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Show help"); Keyboard.Listen(Key.F5, ButtonState.Pressed, Begin, "New game"); // Keyboard.Listen(Key.Escape, ButtonState.Pressed, KysyLopetus, "Exit game"); Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Exit game"); Keyboard.Listen(Key.Up, ButtonState.Down, KaannaMailaa, "Move up", 5.0); Keyboard.Listen(Key.Down, ButtonState.Down, KaannaMailaa, "Move down", -5.0); Keyboard.Listen(Key.Space, ButtonState.Pressed, PudotaPallo, "Drop ball"); Mouse.IsCursorVisible = true; Mouse.ListenOn(pisteNaytto, MouseButton.Left, ButtonState.Pressed, delegate() { AloitaUusiPeli(); }, null); Mouse.Listen(MouseButton.Left, ButtonState.Pressed, delegate() { PudotaPallo(); }, "Drop ball"); // Mouse.ListenMovement(0.1, delegate (AnalogState analogState) { Tahtaa(Mouse.PositionOnWorld); }, "Aim"); Mouse.ListenMovement(0.1, () => { Tahtaa(Mouse.PositionOnWorld); }, "Aim"); TouchPanel.ListenOn(pisteNaytto, ButtonState.Pressed, delegate(Touch kosketus) { AloitaUusiPeli(); }, null); TouchPanel.Listen(ButtonState.Pressed, delegate(Touch kosketus) { PudotaPallo(); }, "Drop ball"); TouchPanel.Listen(ButtonState.Down, delegate(Touch kosketus) { Tahtaa(kosketus.PositionOnWorld); }, "Aim"); // PhoneBackButton.Listen(KysyLopetus, "Lopeta peli"); PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); #if ANDROID // lisää tähän ehtoa jos muitakin kallistelun tukevia Accelerometer.Calibration = AccelerometerCalibration.ZeroAngle; Accelerometer.ListenAnalog(AccelerometerSensitivity.Realtime, TahtaaAccel, "Aim"); Accelerometer.Listen(AccelerometerDirection.Shake, delegate { PudotaPallo(); }, "Drop ball"); #endif }
/// <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"); }