source: 2017/27/UunoT/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 8838

Revision 8838, 7.1 KB checked in by npo17_46, 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    Image Blast = LoadImage("Blast");
15    Image explusion = LoadImage("explusion");
16    PlatformCharacter pelaaja1;
17    PlatformCharacter pelaaja2;
18    IntMeter laskuri;
19    IntMeter laskuri2;
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21
22    public override void Begin()
23    {
24        AloitaPeli();
25        IsFullScreen = false;
26
27    }
28    void AloitaPeli()
29    {
30
31        Physiikka();
32        LuoKentta();
33        //Lisaalaskurit();
34        LisaaLaskuri();
35        LisaaLaskuri2();
36        LisaaNappaimet();
37        Kamera();
38    }
39
40    void Physiikka()
41    {
42        Gravity = new Vector(0, -1000);
43    }
44    //void Lisaalaskurit
45    //{
46    //  LisaaLaskuri();
47    // LisaaLaskuri2();
48    //}
49    void Kamera()
50    {
51        Camera.Follow(pelaaja1);
52        Camera.ZoomFactor = 1.2;
53        Camera.StayInLevel = true;
54    }
55    void LuoKentta()
56    {
57        TileMap kentta = TileMap.FromLevelAsset("kentta1");
58        kentta.SetTileMethod('#', LisaaTaso);
59        kentta.SetTileMethod('N', LisaaPelaaja1);
60        kentta.SetTileMethod('M', LisaaPelaaja2);
61        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
62        Level.CreateBorders();
63        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
64    }
65
66    void LisaaTaso(Vector paikka, double leveys, double korkeus)
67    {
68        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
69        taso.Position = paikka;
70        taso.Color = Color.Green;
71        taso.Tag = "seina";
72        Add(taso);
73    }
74
75    PlatformCharacter LisaaPelaaja(Vector paikka, double leveys, double korkeus)
76    {
77        PlatformCharacter pelaaja = new PlatformCharacter(leveys, korkeus);
78        pelaaja.Position = paikka;
79        pelaaja.Mass = 4.0;
80        //AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
81        Add(pelaaja);
82        return pelaaja;
83    }
84    void LisaaPelaaja1(Vector paikka, double leveys, double korkeus)
85    {
86
87        pelaaja1 = LisaaPelaaja(paikka, leveys, korkeus);
88        pelaaja1.CollisionIgnoreGroup = 1;
89
90    }
91
92    void LisaaPelaaja2(Vector paikka, double leveys, double korkeus)
93    {
94        pelaaja2 = LisaaPelaaja(paikka, leveys, korkeus);
95    }
96    void LisaaNappaimet()
97    {
98        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
99        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
100
101
102
103        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus, 180.0);
104        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus, 0.0);
105        Keyboard.Listen(Key.W, ButtonState.Down, Katsoo ,"Pelaaja Katsoo ylös", pelaaja1, 90.0);
106        Keyboard.Listen(Key.S, ButtonState.Down, Katsoo ,"Pelaaja Katsoo alas", pelaaja1, 270.0);
107        Keyboard.Listen(Key.J, ButtonState.Pressed, RuneBlast, "Pelaaja ampuu", pelaaja1);
108        Keyboard.Listen(Key.K, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
109
110        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus, 180.0);
111        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja2, nopeus, 0.0);
112        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja2, hyppyNopeus);
113
114        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
115
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
123    void Liikuta(PlatformCharacter hahmo, double nopeus, double kulma)
124    {
125        hahmo.Walk(nopeus);
126        hahmo.Angle = Angle.FromDegrees(kulma);
127    }
128    void Katsoo( PlatformCharacter hahmo, double kulma)
129    {
130        hahmo.Angle = Angle.FromDegrees(kulma);
131    }
132
133    void Hyppaa(PlatformCharacter hahmo, double nopeus)
134    {
135        hahmo.Jump(nopeus);
136    }
137    void RuneBlast(PlatformCharacter pelaaja1)
138    {
139        PhysicsObject runeblast = new PhysicsObject(25, 10);
140        runeblast.Position = pelaaja1.Position;
141        Angle suunta = pelaaja1.Angle;
142        runeblast.CollisionIgnoreGroup = 1;
143        //runeblast.IgnoresCollisionWith(pelaaja1);
144        runeblast.Image = Blast;
145        runeblast.Angle = suunta;
146        runeblast.IgnoresGravity = true;
147        runeblast.Mass = 10;
148        //runeblast.Brain = new FollowerBrain();
149        //AddCollisionHandler(runeblast, "seina", Tromaaseina);
150        //runeblast.MaximumLifetime = TimeSpan.FromSeconds(15.0);
151
152        Add(runeblast);
153        runeblast.Hit(Vector.FromLengthAndAngle(5000.0, pelaaja1.Angle));
154        runeblast.Tag = "Prjectile";
155       
156        AddCollisionHandler(runeblast, "seina", Tromaaseina);
157
158    }
159    void Tromaaseina(PhysicsObject runeblast, PhysicsObject taso)
160    {
161        //Explosion rajahdys = new Explosion(75);
162        //rajahdys.Position = runeblast.Position;
163        //Add(rajahdys);
164        //Runicexplude(runeblast.Position);
165        Explosion rajahdys = new Explosion(35);
166        rajahdys.Image = explusion;
167        rajahdys.Position = runeblast.Position;
168        Add(rajahdys);
169        runeblast.Destroy();
170    }
171
172   
173
174  //  Runicexplude(PhysicsObject runeblast, Vector paikka)
175   // {
176     //   Explosion rajahdys = new Explosion(50);
177     //   rajahdys.Position = runeblast.Position;
178      //  Add(rajahdys);
179      //  runeblast.Destroy;
180    //}
181    void LuoPisteLaskuri(double x, double y)
182    {
183        laskuri = new IntMeter(15000);
184        laskuri.MaxValue = 15000;
185
186        Label naytto = new Label();
187        naytto.X = x;
188        naytto.Y = y;
189        naytto.TextColor = Color.Black;
190        naytto.BorderColor = Color.Green;
191        naytto.Color = Color.Red;
192
193        naytto.BindTo(laskuri);
194        Add(naytto);
195        naytto.Title = "Elämä";
196    }
197    void LisaaLaskuri()
198    {
199        LuoPisteLaskuri(Screen.Left + 100.0, Screen.Bottom + 100.0);
200    }
201
202
203    void LuoPisteLaskuri2(double x, double y)
204    {
205        laskuri2 = new IntMeter(15000);
206        laskuri2.MaxValue = 15000;
207
208        Label naytto = new Label();
209        naytto.X = x;
210        naytto.Y = y;
211        naytto.TextColor = Color.Black;
212        naytto.BorderColor = Color.Green;
213        naytto.Color = Color.Red;
214
215        naytto.BindTo(laskuri2);
216        Add(naytto);
217        naytto.Title = "Elämä";
218    }
219    void LisaaLaskuri2()
220    {
221        LuoPisteLaskuri(Screen.Right - 100.0, Screen.Bottom + 100.0);
222    }
223
224}
Note: See TracBrowser for help on using the repository browser.