source: 2015/30/EmilL/KariO/KariO/KariO/KariO.cs @ 6940

Revision 6940, 8.1 KB checked in by jupipana, 5 years ago (diff)

kaikkee

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class KariO : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 500;
13    const int RUUDUN_KOKO = 40;
14
15    int kenttänumero = 1;
16
17    PlatformCharacter pelaaja1;
18    PlatformCharacter pelaaja2;
19    Image pelaajanKuva = LoadImage("Hyvis");
20    Image tahtiKuva = LoadImage("Euronjuusto");
21    Image VihollisenKuva = LoadImage("AndroidPahis");
22    Image PiikkiKuva = LoadImage("Piikki");
23    Image RuohoKuva = LoadImage("Ruoho");
24    Image KiviKuva = LoadImage("Kivi");
25    Image taustaKuva = LoadImage("Taustakuva");
26    SoundEffect maaliAani = LoadSoundEffect("KeräysÄäni");
27    IntMeter pisteLaskuri;
28
29    public override void Begin()
30    {
31        Aloitapeli();
32    }
33
34    void Aloitapeli()
35    {
36        ClearAll();
37        Gravity = new Vector(0, -1000);
38        LuoPistelaskuri();
39
40        LuoKentta();
41        LisaaNappaimet();
42        MediaPlayer.Play("tausta biisi");
43        Level.Background.Image = taustaKuva;
44        Level.Background.FitToLevel();
45
46        Camera.Follow(pelaaja1);
47        Camera.ZoomFactor = 4.0;
48        //Camera.StayInLevel = true;
49    }
50
51    void LuoKentta()
52    {
53
54        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.
55        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kenttä"+kenttänumero);
56
57        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.
58        ruudut.SetTileMethod(Color.FromHexCode("002AFF"), LisaaPelaaja1);
59        ruudut.SetTileMethod(Color.FromHexCode("8330FF"), LisaaPelaaja2);
60        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), LisaaTaso);
61        ruudut.SetTileMethod(Color.FromHexCode("FFAD21"), LisaaHamppari);
62        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), LisaaVihollinen);
63        ruudut.SetTileMethod(Color.FromHexCode("7F0000"), LisaaPiikki);
64        ruudut.SetTileMethod(Color.FromHexCode("808080"), LisaaLinna);
65        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), LisaaRuoho);
66        ruudut.SetTileMethod(Color.FromHexCode("7F0037"), LisaaKivi);
67        //3. Execute luo kentän
68        //   Parametreina leveys ja korkeus
69        ruudut.Execute(20, 20);
70        Level.CreateBorders();
71    }
72
73    void LisaaTaso(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        taso.Position = paikka;
77        taso.Color = Color.Green;
78        Add(taso);
79    }
80
81    void LisaaHamppari(Vector paikka, double leveys, double korkeus)
82    {
83        PhysicsObject Euronjuusto = PhysicsObject.CreateStaticObject(leveys, korkeus);
84        Euronjuusto.IgnoresCollisionResponse = true;
85        Euronjuusto.Position = paikka;
86        Euronjuusto.Image = tahtiKuva;
87        Euronjuusto.Tag = "Euronjuusto";
88        Add(Euronjuusto);
89        pisteLaskuri.MaxValue++;
90    }
91
92    PlatformCharacter LisaaPelaaja(Vector paikka, double leveys, double korkeus)
93    {
94        PlatformCharacter pelaaja = new PlatformCharacter(leveys, korkeus);
95        pelaaja.Position = paikka;
96        pelaaja.Mass = 50.0;
97        pelaaja.Image = pelaajanKuva;
98        AddCollisionHandler(pelaaja, "Euronjuusto", TormaaJuustohampurilaiseen);
99        Add(pelaaja);
100        AddCollisionHandler(pelaaja, "Vihollinen", PelaajaTormasi);
101        AddCollisionHandler(pelaaja, "Maali", TörmääMaaliin);
102        return pelaaja;
103    }
104
105    void LisaaPelaaja1(Vector paikka, double leveys, double korkeus)
106    {
107        pelaaja1 = LisaaPelaaja(paikka, leveys, korkeus);
108    }
109    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus)
110    {
111        pelaaja2 = LisaaPelaaja(paikka, leveys, korkeus);
112    }
113
114    void LisaaNappaimet()
115    {
116        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
117        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
118
119        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
120        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
121        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
122
123        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
124        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus);
125        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
126
127        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
128
129        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
130        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
131        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
132
133    }
134
135    void Liikuta(PlatformCharacter hahmo, double nopeus)
136    {
137        hahmo.Walk(nopeus);
138    }
139
140    void Hyppaa(PlatformCharacter hahmo, double nopeus)
141    {
142        hahmo.Jump(nopeus);
143    }
144
145    void TormaaJuustohampurilaiseen(PhysicsObject hahmo, PhysicsObject tahti)
146    {
147        maaliAani.Play();
148        MessageDisplay.Add("Hey fattie! You collected cheeseburger!!!!!!!! Nice job!!");
149        tahti.Destroy();
150        pisteLaskuri.Value += 1;
151    }
152    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
153    {
154        PlatformCharacter Vihollinen = new PlatformCharacter(leveys, korkeus);
155        Vihollinen.Position = paikka;
156        Vihollinen.Mass = 4.0;
157        Vihollinen.Image = VihollisenKuva;
158        Add(Vihollinen);
159        Vihollinen.Tag = "Vihollinen";
160
161        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
162        tasoAivot.Speed = 50;
163
164        Vihollinen.Brain = tasoAivot;
165
166    }
167    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
168    {
169        PhysicsObject Piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
170        Piikki.Position = paikka;
171        Piikki.Image = PiikkiKuva;
172        Add(Piikki);
173        Piikki.Tag = "Vihollinen";
174
175    }
176    void LisaaLinna(Vector paikka, double leveys, double korkeus)
177    {
178        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
179        taso.Position = paikka;
180        taso.Color = Color.Gray;
181        Add(taso);
182        taso.Tag = "Maali";
183    }
184    void PelaajaTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
185    {
186        MessageDisplay.Add("You died :(");
187        Explosion Räjähdys = new Explosion(100);
188        Räjähdys.Position = kohde.Position;
189        Add(Räjähdys);
190        tormaaja.Destroy();
191        kohde.Destroy();
192
193        Timer.SingleShot(2, Aloitapeli);
194    }
195     void LisaaRuoho(Vector paikka, double leveys, double korkeus)
196    {
197        PhysicsObject Ruoho = PhysicsObject.CreateStaticObject(leveys, korkeus);
198        Ruoho.Position = paikka;
199        Ruoho.Image = RuohoKuva;
200        Add(Ruoho);
201
202   }
203     void TörmääMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
204     {
205         if (pisteLaskuri.Value == pisteLaskuri.MaxValue)
206         {
207             kenttänumero++;
208             Aloitapeli();
209         }
210
211     }
212     void LisaaKivi(Vector paikka, double leveys, double korkeus)
213     {
214         PhysicsObject Kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
215         Kivi.Position = paikka;
216         Kivi.Image = KiviKuva;
217         Add(Kivi);
218
219     }
220     void LuoPistelaskuri()
221     {
222         pisteLaskuri = new IntMeter(0,0,0);
223
224         Label pisteNaytto = new Label();
225         pisteNaytto.X = Screen.Left + 100;
226         pisteNaytto.Y = Screen.Top - 100;
227         pisteNaytto.TextColor = Color.Black;
228         pisteNaytto.Color = Color.White;
229
230         pisteNaytto.BindTo(pisteLaskuri);
231         Add(pisteNaytto);
232     }
233
234}
Note: See TracBrowser for help on using the repository browser.