source: 2016/30/KasimirP/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 8212

Revision 8212, 8.6 KB checked in by kaspalmu, 5 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    PlatformCharacter Vihollinen;
17
18    PhysicsObject lentokone;
19
20    Image pelaajanKuva = LoadImage("Dat_boi1");
21    Image tahtiKuva = LoadImage("leaf");
22    Image VihollisenKuva = LoadImage("pepexd");
23    Image Veri = LoadImage("veri");
24    Image Palikka = LoadImage("Palikka");
25    Image Shrek = LoadImage("Shrekxd");
26    Image kek = LoadImage("art");
27    Image lava = LoadImage("laava");
28    Image Lentsikka = LoadImage("yee");
29    private Image[] ukkelinKavely = LoadImages("Dat_boi1", "Dat_boi2", "Dat_boi3", "Dat_boi4", "Dat_boi5");
30
31    Color[] colors =  { Color.Red, Color.Green, Color.Blue, Color.Yellow, Color.Pink };
32    int index = 0;
33
34    bool SuperVoima = false;
35
36    //SoundEffect maaliAani = LoadSoundEffect("illuminati");
37
38    public override void Begin()
39    {
40        Gravity = new Vector(0, -1000);
41
42        LuoKentta();
43        LisaaNappaimet();
44        Level.CreateBorders();
45        Camera.Follow(pelaaja1);
46        Camera.ZoomFactor = 1.2;
47        Camera.StayInLevel = true;
48        SmoothTextures = false;
49        Window.Fullscreen = true;
50    }
51
52    void LuoKentta()
53    {
54        TileMap kentta = TileMap.FromLevelAsset("kentta1");
55        kentta.SetTileMethod('#', LisaaTaso);
56        kentta.SetTileMethod('*', LisaaTahti);
57        kentta.SetTileMethod('N', LisaaPelaaja);
58        kentta.SetTileMethod('X', LisaaVihollinen);
59        kentta.SetTileMethod('K', LisaaShrek);
60        kentta.SetTileMethod('L', LisaaLaava);
61        kentta.SetTileMethod('F', LisaaLentovihu);
62        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
63       
64        //Level.Background.CreateGradient(Color.White, Color.LimeGreen);
65        Level.Background.Image = kek;
66        Level.Background.FitToLevel();
67        Level.Background.TextureWrapSize = new Vector(3, 1);
68
69        FollowerBrain BRAIN = new FollowerBrain(pelaaja1);
70        BRAIN.Speed = 1000;
71        BRAIN.DistanceFar = 100;
72        BRAIN.FarBrain = new RandomMoverBrain();
73        //lentokone.Brain = BRAIN;
74
75    }
76
77    void LisaaTaso(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
80        taso.Position = paikka;
81        taso.Image = Palikka;
82       
83        //taso.Color = Color.Green;
84        Add(taso);
85    }
86
87    void LisaaLaava(Vector paikka, double leveys, double korkeus)
88    {
89        PhysicsObject Laava = PhysicsObject.CreateStaticObject(leveys, korkeus);
90        Laava.Position = paikka;
91        Laava.Image = lava;
92        Laava.Tag = "Laava";
93        Add(Laava);
94       
95       
96    }
97
98    void LisaaTahti(Vector paikka, double leveys, double korkeus)
99    {
100        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
101        tahti.IgnoresCollisionResponse = true;
102        tahti.Position = paikka;
103        tahti.Image = tahtiKuva;
104        tahti.Tag = "tahti";
105        Add(tahti);
106    }
107
108    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
109    {
110        pelaaja1 = new PlatformCharacter(leveys, korkeus, Shape.Circle);
111        pelaaja1.Position = paikka;
112        pelaaja1.Mass = 4.0;
113        pelaaja1.Image = pelaajanKuva;
114        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
115        AddCollisionHandler(pelaaja1, "Vihollinen", TormaaViholliseen);
116        AddCollisionHandler(pelaaja1, "Shrek", TormaaShrekiin);
117        AddCollisionHandler(pelaaja1, "Laava", TormaaLaavaan);
118        AddCollisionHandler(pelaaja1, "Tahti", TormaaTahteen);
119       
120        Add(pelaaja1);
121        pelaaja1.Animation = new Animation(ukkelinKavely);
122        pelaaja1.Animation.Start();
123
124
125
126    }
127
128    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
129
130    {
131        Vihollinen = new PlatformCharacter(30.0, 30.0);
132
133        Vihollinen.Position = paikka;
134        Vihollinen.Mass = 4.0;
135        Vihollinen.Image = VihollisenKuva;
136        Vihollinen.Tag = "Vihollinen";
137
138        Add(Vihollinen);
139
140        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
141        tasoAivot.Speed = 100;
142        tasoAivot.FallsOffPlatforms = false;
143        Vihollinen.Brain = tasoAivot;
144
145   
146
147
148    }
149   
150    void LisaaLentovihu(Vector paikka, double leveys, double korkeus)
151    {
152        lentokone = new PhysicsObject(Lentsikka);
153        lentokone.Width /= 10;
154        lentokone.Height /= 10;
155
156        lentokone.Position = paikka;
157        lentokone.IgnoresGravity = true;
158        Add(lentokone); 
159    }
160
161    void LisaaShrek(Vector paikka, double leveys, double korkeus)
162    {
163       
164        PhysicsObject s = PhysicsObject.CreateStaticObject(Shrek);
165        s.Mass = 0;
166        s.Position = paikka + new Vector(0, s.Height / 43 / 2);
167        s.Width /= 20;
168        s.Height /= 20;
169        s.Tag = "Shrek";
170
171
172
173        Add(s);
174    }
175
176    //void LisaaVihollinen(Vector paikka, double leveys,
177
178    void LisaaNappaimet()
179    {
180        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
181        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
182
183        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
184        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
185        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
186
187        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
188
189        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
190        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
191        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
192
193        /*Keyboard.Listen(Key.Right, ButtonState.Down, pelaaja1.Animation.Start, "");
194        Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja1.Animation.Stop, "");*/
195
196        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
197    }
198
199    protected override void Update(Time time)
200    {
201        base.Update(time);
202
203        if (pelaaja1.Velocity.X == 0)
204        {
205            pelaaja1.Animation.Stop();
206        }
207        else if (!pelaaja1.Animation.IsPlaying)
208        {
209            pelaaja1.Animation.Start();
210        }
211
212        /*Level.Background.Color = colors[index];
213
214        if (index + 1 >= colors.Length)
215        {
216            index = 0;
217        }
218        else
219        {
220            index++;
221        }*/
222    }
223
224    void Liikuta(PlatformCharacter hahmo, double nopeus)
225    {
226        hahmo.Walk(nopeus);
227    }
228
229    void Hyppaa(PlatformCharacter hahmo, double nopeus)
230    {
231        hahmo.Jump(nopeus);
232    }
233
234    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
235    {
236          //§§maaliAani.Play();
237        Supervoima();
238        MessageDisplay.Add("Keräsit superlehden xd!");
239        tahti.Destroy();
240    }
241    //kekeskafjajs
242    void TormaaViholliseen(PhysicsObject a, PhysicsObject b)
243    {
244        if (SuperVoima == true)
245        {
246            ExplosionSystem rajahdusSysteemi = new ExplosionSystem(VihollisenKuva, 50);
247
248            Add(rajahdusSysteemi);
249
250            rajahdusSysteemi.AddEffect(b.Position, 50);
251            b.Destroy();
252        }
253        else
254        {
255            ExplosionSystem rajahdusSysteemi = new ExplosionSystem(Veri, 50);
256
257            Add(rajahdusSysteemi);
258
259            rajahdusSysteemi.AddEffect(a.Position, 50);
260            a.Destroy();
261        }
262    }
263
264    void TormaaShrekiin(PhysicsObject a, PhysicsObject b)
265    {
266        ExplosionSystem rajahdusSysteemi = new ExplosionSystem(Veri, 50);
267
268        Add(rajahdusSysteemi);
269
270        rajahdusSysteemi.AddEffect(a.Position, 50);
271        a.Destroy();
272    }
273
274    void TormaaLaavaan(PhysicsObject a, PhysicsObject b)
275    {
276        ExplosionSystem rajahdusSysteemi = new ExplosionSystem(Veri, 50);
277
278        Add(rajahdusSysteemi);
279
280        rajahdusSysteemi.AddEffect(a.Position, 50);
281        a.Destroy();
282    }
283
284    void Supervoima()
285    {
286        SuperVoima = true;
287        Timer.SingleShot(7, LopetaSuperVoima);
288    }
289
290    void LopetaSuperVoima ()
291    {
292        MessageDisplay.Add("Supervoima loppui xdddd");
293        SuperVoima = false;
294    }   
295   
296}
Note: See TracBrowser for help on using the repository browser.