source: 2017/27/SimoR/Pong/Pong/Pong/Pong.cs @ 8869

Revision 8869, 2.3 KB checked in by sieerinn, 5 years ago (diff)

Törmäyskäsittelijät lisätty.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Pong : PhysicsGame
10{
11    double nopeus = 500;
12    PhysicsObject pelaaja;
13
14    public override void Begin()
15    {
16        LuoKentta();
17        LisaaOhjaimet();
18    }
19
20    void LuoPelaaja()
21    {
22        pelaaja = new PhysicsObject(50, 50);
23        pelaaja.Color = Color.Green;
24        Add(pelaaja);
25
26        AddCollisionHandler(pelaaja, "pallo", OsuiPalloon);
27        AddCollisionHandler(pelaaja, "pahapallo", OsuiPahaPalloon);
28    }
29
30    void OsuiPalloon(PhysicsObject tormaaja, PhysicsObject kohde)
31    {
32        tormaaja.Size *= 1.2;
33        kohde.Destroy();
34    }
35
36    void OsuiPahaPalloon(PhysicsObject tormaaja, PhysicsObject kohde)
37    {
38        tormaaja.Destroy();
39    }
40
41    void LuoKentta()
42    {
43        LuoPelaaja();
44
45        LuoPallo(-100, -50);
46        LuoPallo(0, 70);
47        LuoPallo(100, -20);
48        LuoPallo(180, 70);
49        LuoPallo(-150, -90);
50
51        LuoPahaPallo(200, -80);
52        LuoPahaPallo(-250, -150);
53        LuoPahaPallo(220, 90);
54    }
55
56    void LuoPallo(double x, double y)
57    {
58        PhysicsObject pallo = new PhysicsObject(50, 50);
59        pallo.Tag = "pallo";
60        pallo.Shape = Shape.Circle;
61        pallo.X = x;
62        pallo.Y = y;
63        Add(pallo);
64    }
65
66    void LuoPahaPallo(double x, double y)
67    {
68        PhysicsObject pallo = new PhysicsObject(50, 50);
69        pallo.Tag = "pahapallo";
70        pallo.Shape = Shape.Circle;
71        pallo.Color = Color.Red;
72        pallo.X = x;
73        pallo.Y = y;
74        Add(pallo);
75    }
76
77    void LisaaOhjaimet()
78    {
79        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
80
81        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Pelaaja liikkuu ylös", new Vector(0, nopeus));
82        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "Pelaaja liikkuu alas", new Vector(0, -nopeus));
83        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", new Vector(-nopeus, 0));
84        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", new Vector(nopeus, 0));
85    }
86
87    void Liikuta(Vector suunta)
88    {
89        pelaaja.Push(suunta);
90    }
91}
Note: See TracBrowser for help on using the repository browser.