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

Revision 4105, 5.7 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(1024, FÄG, true);
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        Camera.ZoomTo(pelaaja1.X, Level.Bottom, pelaaja1.X, Level.Top);
62    }
63
64    void LuoKentta(string kenttaTiedostonNimi)
65    {
66        TileMap kentta = TileMap.FromLevelAsset(kenttaTiedostonNimi);
67        kentta.SetTileMethod('#', LisaaTaso);
68        kentta.SetTileMethod('O', LisaaOmena);
69        kentta.SetTileMethod('N', LisaaPelaaja);
70        kentta.SetTileMethod('M', LisaaMaali);
71        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
72        Level.CreateBorders();
73        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
74    }
75
76    void LisaaTaso(Vector paikka, double leveys, double korkeus)
77    {
78        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
79        taso.Position = paikka;
80        taso.Color = Color.Green;
81        Add(taso);
82    }
83    void LisaaMaali(Vector paikka, double leveys, double korkeus)
84    {
85        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
86        maali.Position = paikka;
87        maali.Color = Color.Black;
88        maali.Tag = "maali";
89        Add(maali);
90    }
91
92    void LisaaOmena(Vector paikka, double leveys, double korkeus)
93    {
94        PhysicsObject omena = PhysicsObject.CreateStaticObject(leveys, korkeus);
95        omena.IgnoresCollisionResponse = true;
96        omena.Position = paikka;
97        omena.Image = omenaKuva;
98        omena.Tag = "omena";
99        Add(omena);
100
101        PhysicsObject susi = PhysicsObject.CreateStaticObject(leveys, korkeus);
102    }
103
104    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
105    {
106        pelaaja1 = new PlatformCharacter(leveys, 1.21 * leveys);
107        //pelaaja1 = new PlatformCharacter(256, 310);
108        pelaaja1.Position = paikka;
109        pelaaja1.Mass = 4.0;
110        pelaaja1.Image = pelaajanKuva;
111        AddCollisionHandler(pelaaja1, "omena", TormaaOmenaan);
112        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
113        Add(pelaaja1);
114    }
115
116    void LisaaNappaimet()
117    {
118        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
119        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
120
121        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
122        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
123        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
124
125        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
126
127        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
128        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
129        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
130
131
132        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
133        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");
134
135    }
136
137    void Liikuta(PlatformCharacter hahmo, double nopeus)
138    {
139        hahmo.Walk(nopeus);
140
141    }
142
143    void Hyppaa(PlatformCharacter hahmo, double nopeus)
144    {
145        hahmo.Jump(nopeus);
146    }
147
148    void TormaaOmenaan(PhysicsObject hahmo, PhysicsObject omena)
149    {
150        maaliAani.Play();
151        MessageDisplay.Add("Keräsit omenan!");
152        omena.Destroy();
153        //olio.Size = new Vector(1150.0, 1150.0);
154    }
155   
156    void TormaaMaaliin(PhysicsObject hahmo, PhysicsObject omena)
157    {
158        maaliAani.Play();
159        MessageDisplay.Add("törmäsit maaliin!");
160        kenttaNro++;
161        SeuraavaKentta();
162    }
163
164    void LuoElamaLaskuri()
165    {
166        elamaLaskuri = new DoubleMeter(10);
167        elamaLaskuri.MaxValue = 10;
168        elamaLaskuri.LowerLimit += ElamaLoppui;
169
170        ProgressBar elamaPalkki = new ProgressBar(150, 20);
171        elamaPalkki.X = Screen.Left + 150;
172        elamaPalkki.Y = Screen.Top - 20;
173        elamaPalkki.BindTo(elamaLaskuri);
174        Add(elamaPalkki);
175    }
176
177    void ElamaLoppui()
178    {
179        MessageDisplay.Add("Elämät loppuivat, voi voi.");
180    }
181
182
183}
184
185
Note: See TracBrowser for help on using the repository browser.