source: 2017/31/JuuseH/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 9336

Revision 9336, 5.0 KB checked in by npo17_81, 23 months 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 = 425;
13    const int RUUDUN_KOKO = 40;
14
15    Pelaaja pelaaja1;
16
17    Image pelaajanKuva = LoadImage("viikinki");
18    Image palikkakuva = LoadImage("maa");
19    Image palikkakuva2 = LoadImage("puu");
20    Image taustakuva = LoadImage("tausta");
21    Image palikkakuva3 = LoadImage("piikit");
22    Image vihollinenkuva = LoadImage("pahis");
23
24
25
26
27    public override void Begin()
28    {
29        Gravity = new Vector(0, -1000);
30
31        LuoKentta();
32        LisaaNappaimet();
33
34
35        Camera.StayInLevel = true;
36        Camera.Follow(pelaaja1);
37
38        Level.Background.TileToLevel();
39
40    }
41
42    void LuoKentta()
43    {
44        TileMap kentta = TileMap.FromLevelAsset("kentta1");
45
46        kentta.SetTileMethod('#', Lisaapalikka1);
47        kentta.SetTileMethod('N', LisaaPelaaja);
48        kentta.SetTileMethod('M', Lisaapalikka2);
49        kentta.SetTileMethod('A', Lisaapalikka3);
50        kentta.SetTileMethod('V', LisaaVihollinen);
51
52
53        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
54        Level.CreateBorders();
55        Level.Background.Image = taustakuva;
56    }
57
58
59
60   
61
62    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
63    {
64        pelaaja1 = new Pelaaja(leveys, korkeus);
65        pelaaja1.Position = paikka;
66        pelaaja1.Mass = 4.0;
67        pelaaja1.Image = pelaajanKuva;
68
69        AddCollisionHandler(pelaaja1, "vihu", Tormays);
70
71        Add(pelaaja1);
72    }
73    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
74    { 
75        PlatformCharacter vihollinen= new PlatformCharacter(leveys, korkeus);
76        vihollinen.Position = paikka;
77        vihollinen.Mass = 4.5;
78        vihollinen.Image = vihollinenkuva;
79        vihollinen.Tag = "vihu";
80        Add(vihollinen);
81
82        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
83        tasoAivot.Speed = 15;
84
85        vihollinen.Brain = tasoAivot;
86
87    }
88
89    void Tormays (PhysicsObject pelaaja, PhysicsObject vihollinen)
90    {
91        int pMaxMaara = 200;
92       
93        ExplosionSystem rajahdys = new ExplosionSystem(LoadImage("veri"), pMaxMaara);
94        rajahdys.MinScale = 2.0;
95        rajahdys.MaxScale = 10.0;
96        rajahdys.MinLifetime = 0.3;
97        rajahdys.MaxLifetime = 0.6;
98        rajahdys.MinAcceleration = 0.2;
99        rajahdys.MaxAcceleration = 0.8;
100       
101       
102        Add(rajahdys);
103
104        double x = pelaaja.X;
105        double y = pelaaja.Y;
106        int pMaara = 50;
107        // "Käynnistetään" räjähdys
108        rajahdys.AddEffect(x, y, pMaara);
109        if (pelaaja.Bottom >= vihollinen.Top) { vihollinen.Destroy();return; }
110        (pelaaja as Pelaaja).Elamalaskuri.AddValue(-1); 
111
112
113    }
114    void LisaaNappaimet()
115    {
116        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
117        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
118
119        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
120        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
121        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
122
123        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
124
125
126       
127        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
128        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
129        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
130
131       
132    }
133
134    void Liikuta(PlatformCharacter hahmo, double nopeus)
135    {
136        hahmo.Walk(nopeus);
137    }
138
139    void Hyppaa(PlatformCharacter hahmo, double nopeus)
140    {
141        hahmo.Jump(nopeus);
142    }
143
144    void Lisaapalikka1(Vector paikka, double leveys, double korkeus)
145    {
146         PhysicsObject palikka1 = new PhysicsObject (50.0,50.0);
147        palikka1.Position = paikka;
148        palikka1.Mass = 4.0;
149        palikka1.Image = palikkakuva;
150
151        Add(palikka1);
152    }
153    void Lisaapalikka2(Vector paikka, double leveys, double korkeus)
154    {
155        PhysicsObject palikka2 =  PhysicsObject.CreateStaticObject(40.0, 15.0);
156        palikka2.Position = paikka += new Vector(0,-15);
157       
158        palikka2.Image = palikkakuva2;
159
160        Add(palikka2);
161    }
162    void Lisaapalikka3(Vector paikka, double leveys, double korkeus)
163    {
164        PhysicsObject palikka3 = PhysicsObject.CreateStaticObject(40.0, 50.0);
165        palikka3.Position = paikka += new Vector(0,9);
166
167        palikka3.Image = palikkakuva3;
168
169        Add(palikka3);
170    }
171}
Note: See TracBrowser for help on using the repository browser.