source: 2014/27/NoelV/turhakepeli/turhakepeli/turhakepeli/turhakepeli.cs @ 5210

Revision 5210, 3.7 KB checked in by novaanan, 7 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class turhakepeli : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    Image hahmo = LoadImage("pelaaja");
13    Image valikonKuva = LoadImage("valikko");
14
15    public override void Begin()
16    {
17        SmoothTextures = false;
18        Level.Background.Color = Color.Brown;
19
20        LuoKentta();
21        LisaaOhjaimet();
22
23
24        Camera.Zoom(4);
25        Camera.FollowedObject = pelaaja;
26
27        PhysicsObject turhake = new PhysicsObject(10, 10);
28        Add(turhake);
29
30
31       
32    }
33
34
35    void LisaaOhjaimet()
36    {
37        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
38
39
40        Keyboard.Listen(Key.W, ButtonState.Down, Liiku, null, new Vector(0, 1000));
41        Keyboard.Listen(Key.W, ButtonState.Released, Liiku, null, Vector.Zero);
42        Keyboard.Listen(Key.S, ButtonState.Down, Liiku, null, new Vector(0, -1000));
43        Keyboard.Listen(Key.S, ButtonState.Released, Liiku, null, Vector.Zero);
44        Keyboard.Listen(Key.D, ButtonState.Down, Liiku, null, new Vector(1000, 0));
45        Keyboard.Listen(Key.D, ButtonState.Released, Liiku, null, Vector.Zero);
46        Keyboard.Listen(Key.A, ButtonState.Down, Liiku, null, new Vector(-1000, 0));
47        Keyboard.Listen(Key.A, ButtonState.Released, Liiku, null, Vector.Zero);
48        Keyboard.Listen(Key.Escape, ButtonState.Pressed, KysyPoistumista, "Lopeta peli");
49    }
50           
51
52    void Liiku(Vector vektori)
53    {
54        if (vektori == Vector.Zero)
55        {
56            int apu = 0;
57            int kierrokset = 4;
58            Timer pelaajanPysayttaja = new Timer();
59            pelaajanPysayttaja.Interval = 0.1;
60            pelaajanPysayttaja.Timeout += delegate 
61                {
62                    apu++;
63                    pelaaja.Velocity = pelaaja.Velocity / 2;
64                    if (apu == kierrokset) pelaaja.Velocity = Vector.Zero;
65                };
66            pelaajanPysayttaja.Start(kierrokset);
67           
68        }
69        else pelaaja.Push(vektori);
70    }
71    void KysyPoistumista()
72    {
73        IsPaused = true;
74        MultiSelectWindow valikko = new MultiSelectWindow("menu", "back to game", "quit game");
75        valikko.AddItemHandler(1, Exit);
76        valikko.AddItemHandler(0, delegate { IsPaused = false; });
77        valikko.Color = Color.Black;
78        valikko.Color = Color.Transparent;
79        valikko.SelectionColor = Color.Black;
80        valikko.Image = valikonKuva;
81        Add(valikko);
82    }
83   
84
85    void LuoKentta()
86    {
87        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.
88        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta");
89
90        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.
91        ruudut.SetTileMethod(Color.Blue, LuoPelaaja);
92        ruudut.SetTileMethod(Color.Black, LuoSeina);
93
94        //3. Execute luo kentän
95        //   Parametreina leveys ja korkeus
96        ruudut.Execute(20, 20);
97    }
98
99
100    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
101    {
102        pelaaja = new PhysicsObject(leveys, korkeus);
103        pelaaja.Image = hahmo;
104        pelaaja.Position = paikka;
105        pelaaja.CanRotate = false;
106        pelaaja.Restitution = 0;
107        pelaaja.MaxVelocity = 300;
108        Add(pelaaja);
109    }
110
111
112    void LuoSeina(Vector paikka, double leveys, double korkeus)
113    {
114        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
115        taso.Position = paikka;
116        taso.CollisionIgnoreGroup = 1;
117        Add(taso);
118    }
119
120}
Note: See TracBrowser for help on using the repository browser.