source: 2013/24/NataliaP/omenajahti/omenajahti/omenajahti/omenajahti.cs @ 4121

Revision 4121, 6.4 KB checked in by naperiai, 6 years ago (diff)

Talletus.

Line 
1
2using System;
3using System.Collections.Generic;
4using Jypeli;
5using Jypeli.Assets;
6using Jypeli.Controls;
7using Jypeli.Effects;
8using Jypeli.Widgets;
9
10public class omenajahti : PhysicsGame
11{
12    int kenttaNro = 1;
13
14    const double nopeus = 400;
15    const double hyppyNopeus = 750;
16    const int RUUDUN_KOKO = 40;
17
18    DoubleMeter elamaLaskuri;
19
20
21
22    PlatformCharacter pelaaja1;
23
24    Image pelaajanKuva = LoadImage("pig3");
25    Image omenaKuva = LoadImage("omena");
26    Image piikkiKuva = LoadImage("piikki");
27
28    SoundEffect maaliAani = LoadSoundEffect("maali");
29
30    public override void Begin()
31    {
32     SetWindowSize(1024, 768, true);
33        SmoothTextures = true;
34        SeuraavaKentta();
35       
36
37    }
38
39    void SeuraavaKentta()
40    {
41        ClearAll();
42
43        Gravity = new Vector(0, -1000);
44
45        if (kenttaNro == 1) LuoKentta("kentta1");
46        else if (kenttaNro == 2) LuoKentta("kentta2");
47        else if (kenttaNro == 3) LuoKentta("kentta3");
48        else if (kenttaNro == 4) LuoKentta("kentta4");
49        else if (kenttaNro == 5) LuoKentta("kentta5");
50        else if (kenttaNro == 6) LuoKentta("kentta6");
51        else if (kenttaNro == 7) LuoKentta("kentta7");
52        else if (kenttaNro == 8) LuoKentta("kentta8");
53        else if (kenttaNro > 3) Exit();
54
55        LisaaNappaimet();
56        LuoElamaLaskuri();
57
58        Camera.Follow(pelaaja1);
59        //Camera.ZoomFactor = 0.2;
60        Camera.StayInLevel = true;
61        Camera.ZoomTo(pelaaja1.X, Level.Bottom, pelaaja1.X, Level.Top);
62        MediaPlayer.Play("angry birds rapmusic");
63    }
64
65    void LuoKentta(string kenttaTiedostonNimi)
66    {
67        TileMap kentta = TileMap.FromLevelAsset(kenttaTiedostonNimi);
68        kentta.SetTileMethod('#', LisaaTaso);
69        kentta.SetTileMethod('O', LisaaOmena);
70        kentta.SetTileMethod('N', LisaaPelaaja);
71        kentta.SetTileMethod('M', LisaaMaali);
72        kentta.SetTileMethod('P', LisaaPiikki);
73        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
74        Level.CreateBorders();
75        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
76    }
77
78    void LisaaTaso(Vector paikka, double leveys, double korkeus)
79    {
80        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
81        taso.Position = paikka;
82        taso.Color = Color.DarkBrown;
83        Add(taso);
84    }
85    void LisaaMaali(Vector paikka, double leveys, double korkeus)
86    {
87        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
88        maali.Position = paikka;
89        maali.Color = Color.Black;
90        maali.Tag = "maali";
91        Add(maali);
92    }
93
94    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
95    {
96        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
97        //piikki.IgnoresCollisionResponse = true;
98        piikki.Position = paikka;
99        piikki.Image = piikkiKuva;
100        piikki.Tag = "piikki";
101        Add(piikki);
102    }
103
104    void LisaaOmena(Vector paikka, double leveys, double korkeus)
105    {
106        PhysicsObject omena = PhysicsObject.CreateStaticObject(leveys, korkeus);
107        //omena.IgnoresCollisionResponse = true;
108        omena.Position = paikka;
109        omena.Image = omenaKuva;
110        omena.Tag = "omena";
111        Add(omena);
112
113        PhysicsObject susi = PhysicsObject.CreateStaticObject(leveys, korkeus);
114    }
115
116    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
117    {
118        pelaaja1 = new PlatformCharacter(leveys, 1.21 * leveys);
119        //pelaaja1 = new PlatformCharacter(256, 310);
120        pelaaja1.Position = paikka;
121        pelaaja1.Mass = 4.0;
122        pelaaja1.Image = pelaajanKuva;
123        AddCollisionHandler(pelaaja1, "omena", TormaaOmenaan);
124        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
125        AddCollisionHandler(pelaaja1, "piikki", TormaaPiikkiin);
126        Add(pelaaja1);
127    }
128
129    void LisaaNappaimet()
130    {
131        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
132        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
133
134        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
135        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
136        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
137
138        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
139
140        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
141        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
142        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
143
144
145        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
146        MediaPlayer.PlayFromURL("http://www.youtube.com/results?search_query=angry+birds+rap&oq=angry+birds&gs_l=youtube.1.9.0l10.1244.3448.0.6531.11.7.0.4.4.0.71.437.7.7.0...0.0...1ac.1.11.youtube.vfJqBqK7PJk");
147
148    }
149
150    void Liikuta(PlatformCharacter hahmo, double nopeus)
151    {
152        hahmo.Walk(nopeus);
153
154    }
155
156    void Hyppaa(PlatformCharacter hahmo, double nopeus)
157    {
158        hahmo.Jump(nopeus);
159    }
160
161    void TormaaPiikkiin(PhysicsObject hahmo, PhysicsObject piikki)
162    {
163        SeuraavaKentta();
164
165           
166
167    }
168
169
170    void TormaaOmenaan(PhysicsObject hahmo, PhysicsObject omena)
171    {
172        maaliAani.Play();
173        MessageDisplay.Add("Keräsit omenan!");
174        omena.Destroy();
175        //olio.Size = new Vector(1150.0, 1150.0);
176    }
177   
178    void TormaaMaaliin(PhysicsObject hahmo, PhysicsObject omena)
179    {
180        maaliAani.Play();
181        MessageDisplay.Add("törmäsit maaliin!");
182        kenttaNro++;
183        SeuraavaKentta();
184    }
185
186    void LuoElamaLaskuri()
187    {
188        elamaLaskuri = new DoubleMeter(10);
189        elamaLaskuri.MaxValue = 10;
190        elamaLaskuri.LowerLimit += ElamaLoppui;
191
192        ProgressBar elamaPalkki = new ProgressBar(150, 20);
193        elamaPalkki.X = Screen.Left + 150;
194        elamaPalkki.Y = Screen.Top - 20;
195        elamaPalkki.BindTo(elamaLaskuri);
196        Add(elamaPalkki);
197    }
198
199    void ElamaLoppui()
200    {
201        MessageDisplay.Add("Elämät loppuivat, voi voi.");
202    }
203
204
205}
206
207
Note: See TracBrowser for help on using the repository browser.