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

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

Peli valmis

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