source: 2014/24/FransM/Supermerjo/Supermerjo/Supermerjo/Supermerjo.cs @ 4987

Revision 4987, 10.6 KB checked in by frmaenpa, 7 years ago (diff)

Nt olen tehnyt lisaa objekteja ja nyt viholliset seuraavat!!!

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Supermerjo : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    //int pelaajanTerveys;
16    Vector pelaajanAloitus;
17
18    PlatformCharacter pelaaja1;
19
20    Image pelaajanKuva = LoadImage("Supermerjohahmo");
21    Image tahtiKuva = LoadImage("tahti");
22    Image taustakuva = LoadImage("Supermerjokentantausta");
23    Image Lattiakuva = LoadImage("Dirt");
24    Image Laava = LoadImage("Laava");
25    IntMeter pisteLaskuri;
26    private Image laavakuva = LoadImage("Laava");
27    Image OrkkiKuva = LoadImage("Cooba");
28    Image VehjeKuva = LoadImage("Vehje");
29    Image Linna = LoadImage("Talo");
30
31    SoundEffect maaliAani = LoadSoundEffect("maali");
32    Vector aloitusPiste;
33    YesNoWindow Lopetus;
34    DoubleMeter HealttiMittari = new DoubleMeter(3, 0, 3);
35    public override void Begin()
36    {
37        Gravity = new Vector(0, -1000);
38
39        LuoKentta();
40        LisaaNappaimet();
41        LuoElama();
42       
43        Camera.Follow(pelaaja1);
44        Camera.ZoomFactor = 1.2;
45        Camera.StayInLevel = true;
46    }
47    void PelaajaKuolee()
48    {
49        pelaaja1.Position = pelaajanAloitus;
50        HealttiMittari.Value = HealttiMittari.MaxValue;
51    }
52 
53    void PainettiinValikonNappia(int valinta)
54{
55  switch (valinta)
56  {
57    case 0:
58          Exit();
59        break;
60    case 1:
61        pelaaja1.Position = aloitusPiste;
62        break;
63  } 
64    }
65    void LuoMusiikki()
66    { 
67   
68    }
69
70    void LuoKentta()
71    {
72        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.
73        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Supermerjokentta");
74
75        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.
76        ruudut.SetTileMethod(Color.FromHexCode("B97A57"), LisaaLattia);
77        ruudut.SetTileMethod(Color.FromHexCode("9D8635"), LisaaPelaaja);
78        ruudut.SetTileMethod(Color.FromHexCode("22B14C"), LisaaPutki);
79        ruudut.SetTileMethod(Color.FromHexCode("E6E1F4"), LisaaPilvi);
80        ruudut.SetTileMethod(Color.FromHexCode("11FF88"), LisaaMyrkky);
81        ruudut.SetTileMethod(Color.FromHexCode("ED1C24"), LisaaLaava);
82        ruudut.SetTileMethod(Color.FromHexCode("FE12EC"), LisaaOrkki);
83        ruudut.SetTileMethod(Color.FromHexCode("A349A4"), LisaaVehje);
84        ruudut.SetTileMethod(Color.FromHexCode("84E2FF"), LisaaTalo);
85
86        //3. Execute luo kentän
87        //   Parametreina leveys ja korkeus
88        ruudut.Execute(20, 20);
89        Level.CreateBorders();
90        // Level.Background.CreateGradient(Color.White, Color.SkyBlue);
91        Level.Background.Image = taustakuva;
92        Level.Background.FitToLevel();
93        //Level.Background.Image = pelaajanKuva;
94        //Level.Background.CreateGradient(Color.White, Color.Blue);
95
96
97    }
98    void LisaaValikko(PhysicsObject pelaaja,PhysicsObject kohde
99        )
100    {
101        MultiSelectWindow valikko = new MultiSelectWindow("Uudelleen plz",
102"Exit", "Aloita!");
103        valikko.ItemSelected += PainettiinValikonNappia;
104        Add(valikko);
105    }
106
107    void LisaaLattia(Vector paikka, double leveys, double korkeus)
108    {
109      //  LisaaSeina(paikka, leveys, korkeus, Color.Brown);
110        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
111        taso.Position = paikka;
112        taso.Image = Lattiakuva;
113        taso.CollisionIgnoreGroup = 1;
114        Add(taso);
115    }
116    void LisaaPilvi(Vector paikka, double leveys, double korkeus)
117    {
118        LisaaSeina(paikka, leveys, korkeus, Color.FromHexCode("E6E1F4"));
119    }
120    void LisaaTahti(Vector paikka, double leveys, double korkeus)
121    {
122        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
123        tahti.IgnoresCollisionResponse = true;
124        tahti.Position = paikka;
125        tahti.Image = tahtiKuva;
126        tahti.Tag = "tahti";
127        Add(tahti);
128    }
129    void LisaaLaavaAine(Vector paikka, double leveys, double korkeus)
130    { 
131    PhysicsObject aine = PhysicsObject.CreateStaticObject(leveys,korkeus);
132    aine.Position = paikka;
133    aine.Image = laavakuva;
134    aine.Tag = "Laava";
135    Add(aine);
136    aine.Color = Color.FromHexCode("ED1C24");
137
138    }
139
140    void LisaaVahinkoAine(Vector paikka, double leveys, double korkeus)
141    {
142    PhysicsObject aine = PhysicsObject.CreateStaticObject(leveys,korkeus);
143    aine.Position = paikka;
144    aine.Tag = "Myrkky";
145    Add(aine);
146    aine.Color = Color.FromHexCode("11FF88");
147   
148    }
149
150    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
151    {
152        aloitusPiste = paikka;
153        pelaaja1 = new PlatformCharacter(leveys, korkeus);
154        pelaaja1.Position = paikka;
155        pelaajanAloitus = paikka;
156        pelaaja1.Mass = 4.0;
157        pelaaja1.Image = pelaajanKuva;
158        AddCollisionHandler(pelaaja1, "Vehje", PelaajaMenettaaHealtti);
159        AddCollisionHandler(pelaaja1, "Myrkky", PelaajaOsuuMyrkky);
160        AddCollisionHandler(pelaaja1, "Laava", PelaajaMenettaaHealtti);
161        AddCollisionHandler(pelaaja1, "Talo", LisaaValikko);
162
163        Add(pelaaja1);
164        pelaaja1.Tag = ("pelaaja");
165
166
167    }
168    void LisaaVehje(Vector paikka, double leveys, double korkeus)
169    {
170      PlatformCharacter vehje = new PlatformCharacter(leveys, korkeus);
171      vehje.Position = paikka;
172     
173      vehje.Mass = 4.0;
174      vehje.Image = VehjeKuva;
175      Add(vehje);
176      PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
177      tasoAivot.Speed = 100;
178      vehje.Tag = "Vehje";
179
180      vehje.Brain = tasoAivot;
181
182    }
183    void LisaaOrkki(Vector paikka, double leveys, double korkeus)
184    {
185        PlatformCharacter orkki = new PlatformCharacter(leveys, korkeus);
186        orkki.Position = paikka;
187
188        orkki.Mass = 4.0;
189        orkki.Image = OrkkiKuva;
190        Add(orkki);
191        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
192        tasoAivot.Speed = 100;
193
194        orkki.Tag = "Orkki";
195        tasoAivot.FallsOffPlatforms = true;
196        tasoAivot.TriesToJump = true;
197        tasoAivot.JumpSpeed = 900;
198        FollowerBrain seuraajanAivot = new FollowerBrain("pelaaja");
199        seuraajanAivot.Speed = 300;                 // Millä nopeudella kohdetta seurataan
200        seuraajanAivot.DistanceFar = 40;           // Etäisyys jolla aletaan seurata kohdetta
201        seuraajanAivot.DistanceClose = 10;
202            ;         // Etäisyys jolloin ollaan lähellä kohdetta
203        seuraajanAivot.StopWhenTargetClose = false;  // Pysähdytään kun ollaan lähellä kohdetta
204        seuraajanAivot.FarBrain = tasoAivot; // Käytetään satunnaisaivoja kun ollaan kaukana
205        orkki.Brain = seuraajanAivot;
206
207    }
208    void LisaaMyrkky(Vector paikka, double leveys, double korkeus)
209    {
210        LisaaVahinkoAine(paikka,leveys,korkeus);
211    }
212
213    void LisaaLaava(Vector paikka, double leveys, double korkeus)
214    {
215        LisaaLaavaAine(paikka, leveys, korkeus);
216    }
217
218    void LisaaNappaimet()
219    {
220        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
221        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
222
223        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
224        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
225        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
226
227        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
228
229        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
230        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
231        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
232
233        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
234    }
235
236    void Liikuta(PlatformCharacter hahmo, double nopeus)
237    {
238        hahmo.Walk(nopeus);
239    }
240
241    void Hyppaa(PlatformCharacter hahmo, double nopeus)
242    {
243        hahmo.Jump(nopeus);
244    }
245
246    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
247    {
248        maaliAani.Play();
249        MessageDisplay.Add("Keräsit tähden!");
250        tahti.Destroy();
251    }
252
253    void LuoPistelaskuri()
254    {
255        pisteLaskuri = new IntMeter(0);
256
257        Label pisteNaytto = new Label();
258        pisteNaytto.X = Screen.Left + 100;
259        pisteNaytto.Y = Screen.Top - 100;
260        pisteNaytto.TextColor = Color.Black;
261        pisteNaytto.Color = Color.White;
262
263        pisteNaytto.BindTo(pisteLaskuri);
264        Add(pisteNaytto);
265    }
266
267    void LisaaPutki(Vector paikka, double leveys, double korkeus)
268    {
269        LisaaSeina(paikka,leveys,korkeus, Color.Green);
270    }
271    void LisaaSeina(Vector paikka,double leveys,double korkeus,Color vari)
272    {
273        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
274        taso.Position = paikka;
275        taso.Color = vari;
276        Add(taso);
277    }
278    void PelaajaOsuuMyrkky(PhysicsObject pelaaja, PhysicsObject kohde)
279    {
280        PelaajaKuolee();
281    }
282    void PelaajaMenettaaHealtti(PhysicsObject pelaaja, PhysicsObject kohde)
283    {
284        HealttiMittari.Value--;
285        pelaaja.Hit(new Vector(1000, 1000));
286    }
287
288    //void PelaajaParantuu(PhysicsObject pelaaja, PhysicsObject klohde)
289    //{
290    //    pelaajanTerveys++;
291    //}
292
293    void Kuolematon(Double Aika)
294    { 
295   
296    }
297
298
299    void LuoElama()
300    {
301       
302        Label pisteNaytto = new Label();
303        pisteNaytto.X = Screen.Left + 100;
304        pisteNaytto.Y = Screen.Top - 100;
305        pisteNaytto.TextColor = Color.Black;
306        pisteNaytto.Color = Color.White;
307        pisteNaytto.Image = LoadImage("Healtti");
308        pisteNaytto.Image = LoadImage("HealttiTyhja");
309        ProgressBar voimaPalkki = new ProgressBar(150, 10);
310        voimaPalkki.BindTo(HealttiMittari);
311        Add(voimaPalkki);
312        HealttiMittari.LowerLimit += PelaajaKuolee;
313    }
314    void LisaaTalo(Vector paikka,double leveys,double korkeus)
315    {
316        PhysicsObject talo = PhysicsObject.CreateStaticObject(leveys, korkeus);
317        Add(talo);
318        talo.Position = paikka;
319        talo.Image = Linna;
320        talo.Tag = "Talo";
321
322    }
323
324
325}
Note: See TracBrowser for help on using the repository browser.