source: 2016/26/JennyN/UnicornJump/UnicornJump/UnicornJump/UnicornJump.cs @ 7631

Revision 7631, 6.5 KB checked in by jehinous, 3 years ago (diff)

moro

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class UnicornJump : PhysicsGame
10{
11    const double nopeus = 500;
12    const double hyppyNopeus = 1500;
13    const int RUUDUN_KOKO = 40;
14    PlatformCharacter pelaaja1;
15    Image pelaajanKuva = LoadImage("yksisarvinentaustaton");
16    Image porkkanaKuva = LoadImage("porkkanaa");
17    Image ruoholaattaKuva = LoadImage("ruoholaattaa");
18    Image sateenkaariKuva = LoadImage("sateenkaari");
19    Image punainenlaatikkoKuva = LoadImage("punainenlaatikko");
20    public override void Begin()
21    {
22  MediaPlayer.Play("pink_fluffy");
23        MediaPlayer.IsRepeating = true;
24        MessageDisplay.Add("Tervetuloa UnicornJumpiin! Tehtävänäsi on johdattaa yksisarvinen ylös sateenkaaren päälle ja väistellä porkkanoita. Yksisarvinen kasvaa aina, kun syöt porkkanan.");
25       
26        Gravity = new Vector(0, -1000);
27        LuoKentta();
28        LisaaNappaimet();
29        LuoPistelaskuri();
30        Camera.Follow(pelaaja1);
31        Camera.ZoomFactor = 0.3;
32        Camera.StayInLevel = true;
33
34        MultiSelectWindow alkuValikko = new MultiSelectWindow("Valikko",
35"Aloita peli", "Lopeta");
36        alkuValikko.Color = Color.FromHexCode("FF00DC");
37        Add(alkuValikko);
38    }
39 
40
41    void LuoKentta()
42    {
43        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta");
44        ruudut.SetTileMethod(Color.FromHexCode("FF00DC"), LisaaPelaaja);
45        ruudut.SetTileMethod(Color.FromHexCode("D1D1FF"), LisaaTaso);
46        ruudut.SetTileMethod(Color.FromHexCode("FF8707"), LisaaTahti);
47        ruudut.SetTileMethod(Color.FromHexCode("FCFFFF"), LisaaSateenkaari);
48        ruudut.SetTileMethod(Color.FromHexCode("50FF35"), LisaaPunainenLaatikko);
49        ruudut.Execute(100, 100);
50    }
51    void LisaaTaso(Vector paikka, double leveys, double korkeus)
52    {
53        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys * 2, korkeus);
54        taso.Position = paikka;
55        Add(taso);
56        taso.Image = ruoholaattaKuva;
57    }
58    void LisaaSateenkaari(Vector paikka, double leveys, double korkeus)
59    {
60        PhysicsObject sateenkaari = PhysicsObject.CreateStaticObject(leveys * 12, korkeus * 5);
61        sateenkaari.Position = paikka;
62        sateenkaari.Image = sateenkaariKuva;
63
64        sateenkaari.Tag = "sateenkaari";
65        sateenkaari.IgnoresCollisionResponse = true;
66        Add(sateenkaari);
67    }
68 
69   
70    void LisaaPunainenLaatikko(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject punainenlaatikko = PhysicsObject.CreateStaticObject(leveys * 2, korkeus);
73        punainenlaatikko.Position = paikka;
74        AddCollisionHandler(pelaaja1, punainenlaatikko, PelaajaTormaaLaatikkoon);
75        punainenlaatikko.Tag = "punainenlaatikko";
76        Add(punainenlaatikko);
77    }
78    void PelaajaTormaaLaatikkoon(PhysicsObject tormaaja, PhysicsObject kohde)
79    {
80        Timer.SingleShot(4.0, Exit);
81        MessageDisplay.Add("Voitit pelin!");
82    }
83    void LisaaTahti(Vector paikka, double leveys, double korkeus)
84    {
85        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys / 2, korkeus / 2);
86        tahti.IgnoresCollisionResponse = true;
87        tahti.Position = paikka;
88        tahti.Image = porkkanaKuva;
89        tahti.Tag = "porkkana";
90        Add(tahti);
91    }
92    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
93    {
94        pelaaja1 = new PlatformCharacter(leveys * 1.5, korkeus);
95        pelaaja1.Position = paikka;
96        pelaaja1.Mass = 4.0;
97        pelaaja1.Image = pelaajanKuva;
98        AddCollisionHandler(pelaaja1, "porkkana", TormaaPorkkanaan);
99        AddCollisionHandler(pelaaja1, "sateenkaari", TormaaSateenkaareen);
100        AddCollisionHandler(pelaaja1, "porkkana", CollisionHandler.IncreaseObjectSize(0.2, 0.2));
101        //AddCollisionHandler(pelaaja1, "punainenlaatikko", PelaajaTormaaLaatikkoon);
102        Add(pelaaja1);
103        pelaaja1.Tag = "pelaaja";
104
105    }
106    void LisaaNappaimet()
107    {
108        Keyboard.Listen(Key.Space, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
109        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
110
111        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
112        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
113        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
114
115        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
116        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
117        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
118        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
119
120        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
121    }
122    void Liikuta(PlatformCharacter hahmo, double nopeus)
123    {
124        hahmo.Walk(nopeus);
125    }
126    void Hyppaa(PlatformCharacter hahmo, double nopeus)
127    {
128        hahmo.Jump(nopeus);
129    }
130    void TormaaPorkkanaan(PhysicsObject hahmo, PhysicsObject porkkana)
131    {
132        porkkana.Destroy();
133        pisteLaskuri.Value += 20;
134    }
135    void TormaaSateenkaareen(PhysicsObject hahmo, PhysicsObject sateenkaari)
136    {
137
138    }
139    void LuoVihollinen(Vector paikka, double leveys, double korkeus)
140    {
141        PhysicsObject vihollinen = new PhysicsObject(leveys, korkeus);
142        vihollinen.Position = paikka;
143        vihollinen.Tag = "porkkana";
144        Add(vihollinen);
145    }
146    IntMeter pisteLaskuri;
147    void LuoPistelaskuri()
148    {
149        pisteLaskuri = new IntMeter(0);
150        Label pisteNaytto = new Label();
151        pisteNaytto.X = Screen.Left + 70;
152        pisteNaytto.Y = Screen.Top - 100;
153        pisteNaytto.TextColor = Color.Black;
154        pisteNaytto.Color = Color.FromHexCode("FF00DC");
155        pisteNaytto.BindTo(pisteLaskuri);
156        Add(pisteNaytto);
157        pisteNaytto.Title = "Paino(kg)";
158        pisteLaskuri.Value = 500;
159        IntMeter keratytEsineet = new IntMeter(0);
160        pisteLaskuri.MaxValue = 700;
161        pisteLaskuri.UpperLimit += LopetaPeli;
162    }
163
164
165    void LopetaPeli()
166    {
167        Timer.SingleShot(10.0, Exit);
168        MessageDisplay.Add("Yksisarvinen painaa liikaa, se ei jaksa enää hyppiä!");
169    }
170 
171}
Note: See TracBrowser for help on using the repository browser.