source: 2017/31/EllaV/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 9403

Revision 9403, 6.3 KB checked in by npo17_76, 2 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 Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    PhysicsObject monsteri;
17    Image pelaajanKuva = LoadImage("koira");
18    Image tahtiKuva = LoadImage("luu1");
19    Image kivikuva = LoadImage("kiviturkoosi");
20    Image monsteriKuva = LoadImage("monsteri2");
21    SoundEffect maaliAani = LoadSoundEffect("maali");
22
23    public override void Begin()
24    {
25
26        LuoAlkuvalikko();
27       
28    }
29    void AloitaPeli(){
30
31        LuoKentta();
32        LuoPistelaskuri();
33        LisaaNappaimet();
34
35
36        Camera.Follow(pelaaja1);
37        Camera.ZoomFactor = 1.2;
38        Camera.StayInLevel = true;
39
40    }
41
42    void LuoKentta()
43    {
44        ClearAll();        Gravity = new Vector(0, -1000);
45        TileMap kentta = TileMap.FromLevelAsset("kentta1");
46        kentta.SetTileMethod('#', LisaaTaso);
47        kentta.SetTileMethod('*', LisaaTahti);
48        kentta.SetTileMethod('N', LisaaPelaaja);
49        kentta.SetTileMethod('K', Lisaakivi);
50        kentta.SetTileMethod('R', Lisaakuolettavapala);
51        kentta.SetTileMethod('M', Lisaamonsteri);
52        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
53        Level.CreateBorders();
54        Level.Background.CreateGradient(Color.Green, Color.Rose);
55    }
56
57    void LisaaTaso(Vector paikka, double leveys, double korkeus)
58    {
59        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
60        taso.Position = paikka;
61        taso.Color = Color.Black;
62        Add(taso);
63    }
64
65    void LisaaTahti(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
68        tahti.IgnoresCollisionResponse = true;
69        tahti.Position = paikka;
70        tahti.Image = tahtiKuva;
71        tahti.Tag = "tahti";
72        Add(tahti);
73    }
74
75    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
76    {
77        pelaaja1 = new PlatformCharacter(leveys, korkeus);
78        pelaaja1.Position = paikka;
79        pelaaja1.Mass = 4.0;
80        pelaaja1.Image = pelaajanKuva;
81        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
82        Add(pelaaja1);
83        AddCollisionHandler(pelaaja1, "kivi", Tormaakiveen);
84        AddCollisionHandler(pelaaja1, "kuolettavapala", Kuolema);
85         AddCollisionHandler(pelaaja1, "monsteri", Kuolema);
86    } 
87    void LisaaNappaimet()
88    {
89        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
90        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
91
92        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
93        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
94        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
95
96        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
97
98        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
99        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
100        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
101
102        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
103    }
104
105    void Liikuta(PlatformCharacter hahmo, double nopeus)
106    {
107        hahmo.Walk(nopeus);
108    }
109
110    void Hyppaa(PlatformCharacter hahmo, double nopeus)
111    {
112        hahmo.Jump(nopeus);
113    }
114
115    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
116    {
117        maaliAani.Play();
118        MessageDisplay.Add("Keräsit luun!");
119        tahti.Destroy();
120        pisteLaskuri.Value += 1;
121
122
123    }
124    void Lisaakivi(Vector paikka, double korkeus, double leveys)
125    {
126        PhysicsObject kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
127        kivi.IgnoresCollisionResponse = true;
128        kivi.Position = paikka;
129        kivi.Image = kivikuva;
130        kivi.Tag = "kivi";
131        Add(kivi);
132
133    }
134    void Tormaakiveen(PhysicsObject hahmo, PhysicsObject kivi)
135    {
136        maaliAani.Play();
137        MessageDisplay.Add("Keräsit kiven!");
138        kivi.Destroy();
139    }
140    void Lisaakuolettavapala(Vector paikka, double korkeus, double leveys)
141    {
142        PhysicsObject kuolettavapala = PhysicsObject.CreateStaticObject(leveys, korkeus);
143        kuolettavapala.IgnoresCollisionResponse = true;
144        kuolettavapala.Position = paikka;
145        kuolettavapala.Image = kivikuva;
146        kuolettavapala.Tag = "kuolettavapala";
147        Add(kuolettavapala);
148    }
149    void Kuolema(PhysicsObject pelaaja1,PhysicsObject kohde)
150    { pelaaja1.Destroy();
151        MessageDisplay.Add("Kuolit!");
152    }
153    void Lisaamonsteri(Vector paikka, double leveys, double korkeus)
154    {
155        monsteri = new PlatformCharacter(leveys*2, korkeus*1);
156        monsteri.Position = paikka;
157        monsteri.Mass = 4.0;
158        monsteri.Image = monsteriKuva;
159RandomMoverBrain satunnaisAivot= new RandomMoverBrain();
160        monsteri.Tag = "monsteri";
161        monsteri.Brain = satunnaisAivot;
162        Add(monsteri);
163    }
164    void satunnaisAivot()
165    {
166
167    }
168    IntMeter pisteLaskuri;
169
170    void LuoPistelaskuri()
171    {
172        pisteLaskuri = new IntMeter(0);
173
174        Label pisteNaytto = new Label();
175        pisteNaytto.X = Screen.Left + 100;
176        pisteNaytto.Y = Screen.Top - 100;
177        pisteNaytto.TextColor = Color.Black;
178        pisteNaytto.Color = Color.Rose;
179        pisteNaytto.BindTo(pisteLaskuri);
180        Add(pisteNaytto);
181
182        pisteNaytto.BindTo(pisteLaskuri);
183        Add(pisteNaytto);
184    }
185       void LuoAlkuvalikko()
186    {
187        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
188"Aloita peli", "Lopeta");
189
190        alkuValikko.AddItemHandler(0, AloitaPeli);
191        alkuValikko.AddItemHandler(1, Exit);
192        alkuValikko.Color = Color.RosePink;
193
194        Add(alkuValikko);
195
196
197    }
198   
199}
Note: See TracBrowser for help on using the repository browser.