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

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