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

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