source: 2017/27/MillaK/RPG/RPG/RPG/RPG.cs @ 8958

Revision 8958, 8.0 KB checked in by npo17_53, 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 RPG : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    PhysicsObject kerjalainen;
13    Vector NopeusYlos = new Vector(0, 200);
14    Vector NopeusAlas = new Vector(0, -200);
15    Vector NopeusVasemmalle = new Vector(-200, 0);
16    Vector NopeusOikealle = new Vector(200, 0);
17
18    GameObject ruutu;
19    int tapahtumat;
20    public override void Begin()
21    {
22        Alkuvalikko();
23    }
24
25    void Alkuvalikko()
26    {
27       
28        MultiSelectWindow alkuValikko = new MultiSelectWindow("Hmm", "Uusi peli", "Lopeta");
29        Add(alkuValikko);
30        alkuValikko.AddItemHandler(0, AloitaPeli);
31        alkuValikko.AddItemHandler(1, Exit);
32    }
33
34    void AloitaPeli()
35    {
36        ClearAll();
37        LuoHahmot();
38        LisaaOhjaimet();
39        LuoKentta();
40    }
41
42    void LuoKentta()
43    {
44        Level.Background.Image = LoadImage("tausta");
45       
46        Level.Width = Window.Width;
47        Level.Height = Window.Height;
48        Level.Background.Size = Level.Size;
49        Level.CreateBorders(1.0, false);
50
51        //tekee rannasta luoksepääsemättömän
52        PhysicsObject ranta = PhysicsObject.CreateStaticObject(Level.Width, Level.Height);
53        ranta.Shape = Shape.FromImage(LoadImage("taustahitbox"));
54        ranta.IsVisible = false;
55        Add(ranta);
56       
57        LuoSeinat();
58        LuoHuonekalut();
59        LuoPuut();
60
61       
62
63    }
64
65    void LuoPuut()
66    {
67        PhysicsObject kuusi = PhysicsObject.CreateStaticObject(120,230);
68        Add(kuusi);
69        kuusi.Shape = Shape.Triangle;
70        kuusi.Image = LoadImage("kuusi");
71        kuusi.X = 0;
72        kuusi.Y = 400;
73
74        PhysicsObject kuusi2 = PhysicsObject.CreateStaticObject(120, 230);
75        Add(kuusi2);
76        kuusi2.Shape = Shape.Triangle;
77        kuusi2.Image = LoadImage("kuusi");
78        kuusi2.X = 90;
79        kuusi2.Y = 360;
80
81        PhysicsObject kuusi3 = PhysicsObject.CreateStaticObject(120, 230);
82        Add(kuusi3);
83        kuusi3.Shape = Shape.Triangle;
84        kuusi3.Image = LoadImage("kuusi");
85        kuusi3.X = -100;
86        kuusi3.Y = 350;
87
88        PhysicsObject kuusi4 = PhysicsObject.CreateStaticObject(120, 230);
89        Add(kuusi4);
90        kuusi4.Shape = Shape.Triangle;
91        kuusi4.Image = LoadImage("kuusi");
92        kuusi4.X = 300;
93        kuusi4.Y = 250;
94
95        PhysicsObject kuusi5 = PhysicsObject.CreateStaticObject(120, 230);
96        Add(kuusi5);
97        kuusi5.Shape = Shape.Triangle;
98        kuusi5.Image = LoadImage("kuusi");
99        kuusi5.X = 450;
100        kuusi5.Y = 425;
101    }
102
103    void LuoHuonekalut()
104
105    {
106
107        //keittiön mööpelit
108        LuoHuonekalu(-260, -320, 90, 260);
109        LuoHuonekalu(-370, -400, 280, 100);
110
111        //sohva
112        LuoHuonekalu(-726, -297, 100, 30);
113        LuoHuonekalu(-726, -60, 110, 30);
114        LuoHuonekalu(-763, -190, 40, 245);
115
116        //suihku
117        LuoHuonekalu(-740, 216, 75, 82);
118
119        //pöytä
120        PhysicsObject poyta = new PhysicsObject(155,169);
121        poyta.Shape = Shape.Circle;
122        poyta.MakeStatic();
123        poyta.IsVisible = false;
124        poyta.X = -556;
125        poyta.Y = -178;
126        Add(poyta);
127
128
129    }
130    void LuoSeinat()
131    {
132        //ulkoseinät
133        LuoSeina(-214, 195, 10, 424);
134        LuoSeina(-214, -280 , 10, 349);
135
136        LuoSeina(-497, 405, 576, 10);
137        LuoSeina(-497, -453, 576, 10);
138
139        LuoSeina(-780, -24, 10, 862);
140
141        //sisäseinät
142        LuoSeina(-565, 360, 10, 95);
143        LuoSeina(-565, 175, 10, 130);
144
145        LuoSeina(-535, 110, 235, 10);
146        LuoSeina(-748, 110, 73, 10);
147        LuoSeina(-280, 110, 140, 10);
148
149    }
150
151    void LuoSeina(double x, double y, double leveys, double korkeus)
152    {
153        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus);
154        seina.X = x;
155        seina.Y = y;
156        seina.IsVisible = false;
157        Add(seina);
158    }
159
160    void LuoHuonekalu(double x, double y, double leveys, double korkeus)
161    {
162        PhysicsObject huone = PhysicsObject.CreateStaticObject(leveys, korkeus);
163        huone.X = x;
164        huone.Y = y;
165        huone.IsVisible = false;
166        Add(huone);
167    }
168    void LuoHahmot ()
169    {
170        //luo pelaajan
171        pelaaja = new PhysicsObject(40, 60);
172        pelaaja.Image = LoadImage("hemmo");
173        pelaaja.Shape = Shape.Circle;
174        pelaaja.X = -265;
175        pelaaja.Y = 350;
176        pelaaja.CanRotate = false;
177        pelaaja.Restitution = 0;
178        Add(pelaaja);
179
180        AddCollisionHandler(pelaaja, "mia", Puhe);
181
182        //luo merenneidon
183        PhysicsObject merenneito = new PhysicsObject(90, 50);
184        merenneito.Image = LoadImage("mermaid");
185        merenneito.MakeStatic();
186        merenneito.Restitution = 0;
187        merenneito.X = 650;
188        merenneito.Y = -150;
189        merenneito.IsVisible = false;
190        Add(merenneito);
191
192        //luo kerjalaisen
193        kerjalainen = new PhysicsObject(40, 60);
194        kerjalainen.Tag = "mia";
195        kerjalainen.Image = LoadImage("kerjalainen");
196        kerjalainen.Mass = 20;
197        kerjalainen.CanRotate = false;
198        kerjalainen.Restitution = 0;
199        kerjalainen.X = 350;
200        kerjalainen.Y = -50;
201        Add(kerjalainen);
202
203        List<Vector> polku = new List<Vector>();
204        polku.Add(new Vector(-50, -50));
205        polku.Add(new Vector(-350, 150));
206        polku.Add(new Vector(-100, -50));
207
208        PathFollowerBrain polkuAivot = new PathFollowerBrain();
209        polkuAivot.Path = polku;
210        polkuAivot.Speed = 20;
211        kerjalainen.Brain = polkuAivot;
212
213
214
215    }
216    //    void tapahtumia()
217    //    {
218    //     if(pelaaja.X = )
219    //{
220    //            tavataanKerjalainen();
221    //}
222    //    }
223
224
225    //    void tavataanKerjalainen()
226    //    {
227    //       Keyboard.Listen(Key.Space, ButtonState.Down, Puhe, "puhu", pelaaja, kerjalainen);
228    //    }
229
230
231    void Puhe(PhysicsObject pelaaja, PhysicsObject kerjalainen)
232    {
233        if(ruutu != null) 
234        {
235            return;
236        }
237
238        ruutu = new GameObject(200, 100);
239        ruutu.Image = LoadImage("puheker");
240        ruutu.Y = kerjalainen.Y + 90;
241        ruutu.X = kerjalainen.X - 100;
242
243        Label tekstiKentta1 = new Label("Hello there.");
244        tekstiKentta1.Font = Font.DefaultSmall;
245        tekstiKentta1.Y = kerjalainen.Y + 90;
246        tekstiKentta1.X = kerjalainen.X - 100;
247
248        Add(ruutu, 2);
249        Add(tekstiKentta1, 3);
250
251        kerjalainen.MakeStatic();
252        kerjalainen.Brain.Active = false;
253        kerjalainen.Stop();
254       
255    }
256
257    void LisaaOhjaimet()
258    {
259
260        //liikuttaa pelaajaa
261        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "liikuta pelaajaa ylös", pelaaja, NopeusYlos);
262        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
263
264        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "liikuta pelaajaa alas", pelaaja, NopeusAlas);
265        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
266
267        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "liikuta pelaajaa vasemmalle", pelaaja, NopeusVasemmalle);
268        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
269
270        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "liikuta pelaajaa oikealle", pelaaja, NopeusOikealle);
271        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
272   
273        //exit
274        PhoneBackButton.Listen(Alkuvalikko, "Lopeta peli");
275        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Alkuvalikko, "Lopeta peli");
276   
277    }
278    void AsetaNopeus(PhysicsObject joku, Vector nopeus)
279    {
280        pelaaja.Velocity = nopeus;
281    }
282
283
284}
Note: See TracBrowser for help on using the repository browser.