source: 2012/JAO/JaakkoSivill/hyppely/hyppely/hyppely/hyppely.cs @ 2716

Revision 2716, 7.2 KB checked in by anonymous, 11 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class hyppely : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14    IntMeter pisteLaskuri;
15    PlatformCharacter pelaaja1;
16    PlatformCharacter pelaaja2;
17    Image pelaajanKuva = LoadImage("sorsa");
18    Image tahtiKuva = LoadImage("kofffff");
19    Image pelaajan2Kuva = LoadImage("norsu");
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21    List<Label> valikonKohdat;
22    public override void Begin()
23    {
24        Valikko();
25
26       
27    }
28    void Valikko()
29    { ClearAll();
30            valikonKohdat = new List<Label>();
31
32            Label kohta1 = new Label("Aloita uusi peli");
33            kohta1.Position = new Vector(0, 40);
34            valikonKohdat.Add(kohta1);
35
36            Label kohta2 = new Label("Lopeta");
37            kohta2.Position = new Vector(0, -40);
38            valikonKohdat.Add(kohta2);
39
40            foreach (Label valikonKohta in valikonKohdat)
41            {
42                Add(valikonKohta);
43            }
44
45            Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
46            Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
47           
48            Mouse.IsCursorVisible = true;
49            Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
50            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
51    }
52    void ValikossaLiikkuminen(AnalogState hiirenTila)
53    {
54        foreach (Label kohta in valikonKohdat)
55        {
56            if (Mouse.IsCursorOn(kohta))
57            {
58                kohta.TextColor = Color.Red;
59            }
60            else
61            {
62                kohta.TextColor = Color.Black;
63            }
64
65        }
66    }
67    void AloitaPeli()
68    {
69        ClearAll();
70        Gravity = new Vector(0, -1000);
71        LuoLaskuri1();
72        LuoLaskuri2();
73        luoKentta();
74        lisaaNappaimet();
75        lisaaNappaimet2();
76        Camera.Follow(pelaaja1);
77        Camera.ZoomFactor = 1.2;
78        Camera.StayInLevel = true;
79        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
80    }
81   
82       
83
84     
85       
86           
87               
88               
89                 
90       
91         
92    void luoKentta()
93    {
94        TileMap kentta = TileMap.FromFile("kentta1.txt");
95        kentta.SetTileMethod('#', lisaaTaso);
96        kentta.SetTileMethod('*', lisaaTahti);
97        kentta.SetTileMethod('N', lisaaPelaaja);
98        kentta.SetTileMethod('p', lisaaPelaaja2);
99        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
100        Level.CreateBorders();
101        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
102
103    }
104
105    void lisaaTaso(Vector paikka, double leveys, double korkeus)
106    {
107        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
108        taso.Position = paikka;
109        taso.Color = Color.Green;
110        Add(taso);
111    }
112
113    void lisaaTahti(Vector paikka, double leveys, double korkeus)
114    {
115        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys,2* korkeus);
116        tahti.IgnoresCollisionResponse = true;
117        tahti.Position = paikka;
118        tahti.Image = tahtiKuva;
119        tahti.Tag = "tahti";
120        Add(tahti);
121    }
122
123    void lisaaPelaaja(Vector paikka, double leveys, double korkeus)
124    {
125        pelaaja1 = new PlatformCharacter(leveys, korkeus);
126        pelaaja1.Position = paikka;
127        pelaaja1.Mass = 4.0;
128        pelaaja1.Image = pelaajanKuva;
129        AddCollisionHandler(pelaaja1, kasittelePelaajanTormays);
130        Add(pelaaja1);
131    }
132    void lisaaPelaaja2(Vector paikka, double leveys, double korkeus)
133    {
134        pelaaja2 = new PlatformCharacter(leveys, korkeus);
135        pelaaja2.Position = paikka;
136        pelaaja2.Mass = 4.0;
137        pelaaja2.Image = pelaajan2Kuva;
138        AddCollisionHandler(pelaaja2, kasittelePelaajan2Tormays);
139        Add(pelaaja2);
140    }
141    void lisaaNappaimet()
142    {
143        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
144        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
145        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
146
147        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
148        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
149        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
150
151        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
152
153        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
154        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
155        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
156
157        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
158    }
159
160    void liikuta(PlatformCharacter hahmo, double nopeus)
161    {
162        hahmo.Walk(nopeus);
163    }
164
165    void hyppaa(PlatformCharacter hahmo, double nopeus)
166    {
167        hahmo.Jump(nopeus);
168    }
169
170    void kasittelePelaajanTormays(PhysicsObject hahmo, PhysicsObject kohde)
171    {
172        if (kohde.Tag.ToString() == "tahti")
173        {
174            maaliAani.Play();
175            MessageDisplay.Add("Keräsit tähden!");
176            kohde.Destroy();
177            pisteLaskuri.Value++;
178            pisteLaskuri.Value += 1;
179            pisteLaskuri.Value = pisteLaskuri.Value + 1;
180        }
181    }
182    void kasittelePelaajan2Tormays(PhysicsObject hahmo, PhysicsObject kohde)
183    {
184        if (kohde.Tag.ToString() == "tahti")
185        {
186            maaliAani.Play();
187            MessageDisplay.Add("Keräsit tähden!");
188            kohde.Destroy();
189        }
190    }
191            void lisaaNappaimet2()
192    {
193        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
194        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
195        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
196
197        Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
198        Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus);
199        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
200
201        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
202
203        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja2, -nopeus);
204        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja2, nopeus);
205        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
206
207
208    }
209
210         
211             
212   
213}
214
Note: See TracBrowser for help on using the repository browser.