source: 2014/30/JouniP/Syonti/Syonti/Syonti/Syonti.cs @ 5559

Revision 5559, 2.6 KB checked in by jotapoti, 7 years ago (diff)

Syöntipelin aloitus. Liikuteltava pallo ja useita muita palloja ruudulla.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Syonti : PhysicsGame
10{
11    PhysicsObject pelaaja;
12
13    Vector nopeusOikealle   = new Vector( 200,    0);
14    Vector nopeusVasemmalle = new Vector(-200,    0);
15    Vector nopeusYlos       = new Vector(   0,  200);
16    Vector nopeusAlas       = new Vector(   0, -200);
17
18    public override void Begin()
19    {
20        LuoPelaaja();
21
22        // Tehdään muut pallot kenttään:
23        LuoUseitaPalloja(50);
24
25        LisaaNappaimet();
26    }
27
28    void LisaaNappaimet()
29    {
30        // Poistumisnäppäin
31        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
32        // Helppinäppäin:
33        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
34
35        // Pelaajan nuolinäppäimet:
36        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Liiku oikealle", pelaaja, nopeusOikealle);
37        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, "Liiku oikealle", pelaaja, Vector.Zero);
38        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Liiku vasemmalle", pelaaja, nopeusVasemmalle);
39        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, "Liiku vasemmalle", pelaaja, Vector.Zero);
40        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Liiku ylös", pelaaja, nopeusYlos);
41        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, "Liiku ylös", pelaaja, Vector.Zero);
42        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Liiku alas", pelaaja, nopeusAlas);
43        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, "Liiku alas", pelaaja, Vector.Zero);
44    }
45   
46    void AsetaNopeus(PhysicsObject hahmo, Vector nopeus)
47    {
48        hahmo.Velocity = nopeus;
49    }
50
51    void LuoPelaaja()
52    {
53        pelaaja = LuoPallo(0.0, 0.0, 20.0, Color.Red);
54        Add(pelaaja, 1);
55    }
56
57    void LuoUseitaPalloja(int maara)
58    {
59        int i = 0;
60        while (i < maara)
61        {
62            double x = RandomGen.NextDouble(Level.Left, Level.Right);
63            double y = RandomGen.NextDouble(Level.Bottom, Level.Top);
64            PhysicsObject p = LuoPallo(x, y, 40.0, Color.Beige);
65            Add(p);
66            i++;
67        }
68    }
69
70    PhysicsObject LuoPallo(double x, double y, double sade, Color vari)
71    {
72        PhysicsObject pallura = new PhysicsObject(sade * 2.0, sade * 2.0, Shape.Circle);
73        pallura.Position = new Vector(x, y);
74        pallura.Color = vari;
75        return pallura;
76    }
77}
Note: See TracBrowser for help on using the repository browser.