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

Revision 4090, 5.6 KB checked in by naperiai, 9 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
27    SoundEffect maaliAani = LoadSoundEffect("maali");
28
29    public override void Begin()
30    {
31        SetWindowSize(800, 600);
32        SmoothTextures = true;
33        SeuraavaKentta();
34
35
36    }
37
38    void SeuraavaKentta()
39    {
40        ClearAll();
41
42        Gravity = new Vector(0, -1000);
43
44        if (kenttaNro == 1) LuoKentta("kentta1");
45        else if (kenttaNro == 2) LuoKentta("kentta2");
46        else if (kenttaNro == 3) LuoKentta("kentta3");
47        else if (kenttaNro == 4) LuoKentta("kentta4");
48        else if (kenttaNro == 5) LuoKentta("kentta5");
49        else if (kenttaNro == 6) LuoKentta("kentta6");
50        else if (kenttaNro == 7) LuoKentta("kentta7");
51        else if (kenttaNro == 8) LuoKentta("kentta8");
52        else if (kenttaNro > 3) Exit();
53
54
55        LisaaNappaimet();
56        LuoElamaLaskuri();
57
58        Camera.Follow(pelaaja1);
59        //Camera.ZoomFactor = 0.2;
60        Camera.StayInLevel = true;
61    }
62
63    void LuoKentta(string kenttaTiedostonNimi)
64    {
65        TileMap kentta = TileMap.FromLevelAsset("kentta1");
66        kentta.SetTileMethod('#', LisaaTaso);
67        kentta.SetTileMethod('O', LisaaOmena);
68        kentta.SetTileMethod('N', LisaaPelaaja);
69        kentta.SetTileMethod('M', LisaaMaali);
70        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
71        Level.CreateBorders();
72        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
73    }
74
75    void LisaaTaso(Vector paikka, double leveys, double korkeus)
76    {
77        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
78        taso.Position = paikka;
79        taso.Color = Color.Green;
80        Add(taso);
81    }
82    void LisaaMaali(Vector paikka, double leveys, double korkeus)
83    {
84        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
85        maali.Position = paikka;
86        maali.Color = Color.Black;
87        maali.Tag = "maali";
88        Add(maali);
89    }
90
91    void LisaaOmena(Vector paikka, double leveys, double korkeus)
92    {
93        PhysicsObject omena = PhysicsObject.CreateStaticObject(leveys, korkeus);
94        omena.IgnoresCollisionResponse = true;
95        omena.Position = paikka;
96        omena.Image = omenaKuva;
97        omena.Tag = "omena";
98        Add(omena);
99
100        PhysicsObject susi = PhysicsObject.CreateStaticObject(leveys, korkeus);
101    }
102
103    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
104    {
105        pelaaja1 = new PlatformCharacter(leveys, 1.21 * leveys);
106        //pelaaja1 = new PlatformCharacter(256, 310);
107        pelaaja1.Position = paikka;
108        pelaaja1.Mass = 4.0;
109        pelaaja1.Image = pelaajanKuva;
110        AddCollisionHandler(pelaaja1, "omena", TormaaOmenaan);
111        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
112        Add(pelaaja1);
113    }
114
115    void LisaaNappaimet()
116    {
117        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
118        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
119
120        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
121        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
122        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
123
124        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
125
126        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
127        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
128        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
129
130
131        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
132        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");
133
134    }
135
136    void Liikuta(PlatformCharacter hahmo, double nopeus)
137    {
138        hahmo.Walk(nopeus);
139
140    }
141
142    void Hyppaa(PlatformCharacter hahmo, double nopeus)
143    {
144        hahmo.Jump(nopeus);
145    }
146
147    void TormaaOmenaan(PhysicsObject hahmo, PhysicsObject omena)
148    {
149        maaliAani.Play();
150        MessageDisplay.Add("Keräsit omenan!");
151        omena.Destroy();
152        //olio.Size = new Vector(1150.0, 1150.0);
153    }
154   
155    void TormaaMaaliin(PhysicsObject hahmo, PhysicsObject omena)
156    {
157        maaliAani.Play();
158        MessageDisplay.Add("törmäsit maaliin!");
159        kenttaNro++;
160        SeuraavaKentta();
161    }
162
163    void LuoElamaLaskuri()
164    {
165        elamaLaskuri = new DoubleMeter(10);
166        elamaLaskuri.MaxValue = 10;
167        elamaLaskuri.LowerLimit += ElamaLoppui;
168
169        ProgressBar elamaPalkki = new ProgressBar(150, 20);
170        elamaPalkki.X = Screen.Left + 150;
171        elamaPalkki.Y = Screen.Top - 20;
172        elamaPalkki.BindTo(elamaLaskuri);
173        Add(elamaPalkki);
174    }
175
176    void ElamaLoppui()
177    {
178        MessageDisplay.Add("Elämät loppuivat, voi voi.");
179    }
180
181
182}
183
184
Note: See TracBrowser for help on using the repository browser.