source: 2013/26/AkseliT/Jump Game/Jump Game/Jump Game/Jump_Game.cs @ 4259

Revision 4259, 5.1 KB checked in by juiitamm, 7 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Jump_Game : PhysicsGame
10{
11    int kenttaNro = 6;
12    PhysicsObject piikki = new PhysicsObject(20, 20);
13    Image pomminkuva = LoadImage("pommi");
14
15    Image piikinkuva = LoadImage("piikki");
16    Image tahdenkuva = LoadImage("tahti");
17    Image pelaajankuva = LoadImage("pelaaja");
18    PlatformCharacter pelaaja;
19    IntMeter tahtiLaskuri;
20
21    public override void Begin()
22    {
23        SeuraavaKentta();
24        // TODO: Kirjoita ohjelmakoodisi tähän
25        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
26       
27        MultiSelectWindow alkuValikko = new MultiSelectWindow("Jump Game alkuvalikko", "Aloita peli", "Lopeta");
28        Add(alkuValikko);
29        //alkuValikko.AddItemHandler(0, Aloitapeli);
30        alkuValikko.AddItemHandler(1, Exit);
31        alkuValikko.DefaultCancel = 3;
32        alkuValikko.DefaultCancel = -1;
33    }
34    void SeuraavaKentta()
35    {
36        ClearAll();
37        if (kenttaNro == 1) LuoKentta("kentta1");
38        else if (kenttaNro == 2) LuoKentta("kentta2");
39        else if (kenttaNro == 3) LuoKentta("kentta3");
40        else if (kenttaNro == 4) LuoKentta("Kentta4");
41        else if (kenttaNro == 5) LuoKentta("kentta5");
42        else if (kenttaNro == 6) LuoKentta("kentta6");
43        else if (kenttaNro > 6) Exit();
44        LuoOhjaimet();
45    }
46
47
48    void LuoKentta(string kentta)
49    {
50        tahtiLaskuri = new IntMeter(0);
51        tahtiLaskuri.MinValue = 0;
52        tahtiLaskuri.MaxValue = int.MaxValue;
53        tahtiLaskuri.LowerLimit += delegate
54        {
55            // mieti mitä tapahtuu kun on kaikki kerätty
56            kenttaNro++;
57            SeuraavaKentta();
58        };
59        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kentta);
60        ruudut.SetTileMethod(Color.Green, LuoPelaaja);
61        ruudut.SetTileMethod(Color.Black, LuoTaso);
62        ruudut.SetTileMethod("FFD800", LuoTahti);
63        ruudut.SetTileMethod("808080", LuoPiikki);
64        ruudut.SetTileMethod("1900FF", LuoPommi);
65        ruudut.Execute(20, 20);
66        Camera.ZoomToLevel();
67        Level.BackgroundColor = Color.DarkAzure;
68
69        Level.CreateBorders(false);
70        Gravity = new Vector(0, -500);
71        MediaPlayer.Play("musa");
72    }
73
74
75    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
76    {
77        pelaaja = new PlatformCharacter(10, 10);
78        pelaaja.Image = pelaajankuva;
79        pelaaja.Position = paikka;
80        AddCollisionHandler(pelaaja, "tahti", CollisionHandler.DestroyTarget);
81        AddCollisionHandler(pelaaja, "tahti", CollisionHandler.AddMeterValue(tahtiLaskuri, -1));
82        Add(pelaaja);
83        AddCollisionHandler(pelaaja, "piikki", CollisionHandler.ExplodeObject(100, true));
84        AddCollisionHandler(pelaaja, "piikki", delegate(PhysicsObject p, PhysicsObject o)
85        {
86            ClearAll();
87            Begin();
88        });
89        AddCollisionHandler(pelaaja, "pommi", delegate(PhysicsObject olio, PhysicsObject pommi)
90        {
91            Explosion rajahdys = new Explosion(100);
92            rajahdys.Position = pommi.Position;
93            Add(rajahdys);
94            pommi.Destroy();
95        }); 
96    }
97
98
99    void LuoTaso(Vector paikka, double leveys, double korkeus)
100    {
101        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
102        taso.Position = paikka;
103        //taso.Image = Untitled;
104        taso.CollisionIgnoreGroup = 1;
105        Add(taso);
106    }
107
108    void LuoTahti(Vector paikka, double leveys, double korkeus)
109    {
110        PhysicsObject tahti = new PhysicsObject(5, 5);
111        tahti.Image = tahdenkuva;
112        //tahti.IgnoresCollisionResponse = true;
113        tahti.Position = paikka;
114        //tahti.Image = tahdenKuva;
115        tahti.Tag = "tahti";
116        Add(tahti, 1);
117        tahtiLaskuri.Value++;
118    }
119
120    void LuoOhjaimet()
121    {
122        Keyboard.Listen(Key.Space, ButtonState.Pressed, Huppaa, null, pelaaja, 500.0);
123
124        Keyboard.Listen(Key.A, ButtonState.Down, Kavele, null, pelaaja, -100.0);
125        Keyboard.Listen(Key.D, ButtonState.Down, Kavele, null, pelaaja, 100.0);
126        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
127    }
128
129    void Kavele(PlatformCharacter pelaaja, double nopeus)
130    {
131        pelaaja.Walk(nopeus);
132    }
133
134
135    void Huppaa(PlatformCharacter pelaaja, double nopeus)
136    {
137        pelaaja.Jump(nopeus);
138    }
139
140
141
142
143    void LuoPiikki(Vector paikka, double leveys, double korkeus)
144    {
145        if (RandomGen.NextInt(100) < 60)
146            return;
147
148        PhysicsObject piikki = new PhysicsObject(20, 20);
149        piikki.Image = piikinkuva;
150        piikki.Position = paikka;
151        piikki.Tag = "piikki";
152        Add(piikki);
153
154
155
156
157
158    }
159
160    void LuoPommi(Vector paikka, double leveys, double korkeus)
161    {
162        PhysicsObject pommi = new PhysicsObject(10, 10);
163        pommi.Image = pomminkuva;
164        pommi.Position = paikka;
165        pommi.Tag = "pommi";
166        Add(pommi);
167    }
168
169}
170   
171   
Note: See TracBrowser for help on using the repository browser.