source: 2014/27/JouniP_esimerkki/Efektit/Efektit/Efektit/Efektit.cs @ 5313

Revision 5313, 2.3 KB checked in by jotapoti, 6 years ago (diff)

Räjähdysesimerkki omalla kuvatiedostolla tehty.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9
10public class Efektit : PhysicsGame
11{
12    PhysicsObject pallo;
13    Image partikkeli = LoadImage("rajahdyspartikkeli");
14
15    public override void Begin()
16    {
17        LuoKentta();
18        LisaaPallo();
19        LisaaLaatikoita();
20
21        LisaaNappainkuuntelijat();
22
23       
24
25    }
26
27    void Rajayta(PhysicsObject tormaaja, PhysicsObject kohde)
28    {
29        ExplosionSystem rajahdys = new ExplosionSystem(partikkeli, 20);
30        Add(rajahdys);
31        rajahdys.MinScale = 1;
32        rajahdys.MaxScale = 40;
33        rajahdys.MaxLifetime = 3;
34        rajahdys.AddEffect(tormaaja.X, tormaaja.Y, 10);
35    }
36
37    void LisaaLaatikoita()
38    {
39        int i = 0;
40        while (i < 20)
41        {
42            PhysicsObject laatikko = new PhysicsObject(30, 30, Shape.Rectangle);
43            double minX = Level.Left;
44            double minY = Level.Bottom;
45            double maxX = Level.Right;
46            double maxY = Level.Top;
47            laatikko.Position = RandomGen.NextVector(minX, minY, maxX, maxY);
48            laatikko.Color = RandomGen.NextColor();
49            laatikko.Tag = "loota";
50            Add(laatikko);
51            i++;
52        }
53    }
54
55    void LuoKentta()
56    {
57        Level.Background.Color = Color.Black;
58        Level.CreateBorders();
59        Camera.ZoomToLevel();
60    }
61
62    void LisaaPallo()
63    {
64        pallo = new PhysicsObject(40, 40, Shape.Circle);
65        Add(pallo);
66        AddCollisionHandler(pallo, "loota", Rajayta);
67    }
68
69    void LisaaNappainkuuntelijat()
70    {
71        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
72        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikuta oikealle", pallo, new Vector(10, 0));
73        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikuta vasemmalle", pallo, new Vector(-10, 0));
74        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Liikuta ylös", pallo, new Vector(0, 10));
75        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "Liikuta alas", pallo, new Vector(0, -10));
76    }
77
78    void Liikuta(PhysicsObject olio, Vector suunta)
79    {
80        olio.Hit(suunta);
81    }
82}
Note: See TracBrowser for help on using the repository browser.