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

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