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

Revision 8903, 2.6 KB checked in by sieerinn, 3 years ago (diff)

Silmukka ja satunnaisluvut.

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.1;
33        kohde.Destroy();
34    }
35
36    void OsuiPahaPalloon(PhysicsObject tormaaja, PhysicsObject kohde)
37    {
38        tormaaja.Size *= 0.8;
39        kohde.Destroy();
40    }
41
42    void LuoKentta()
43    {
44        Level.Width = Window.Width;
45        Level.Height= Window.Height;
46
47        LuoPelaaja();
48
49        for (int i = 0; i < 120; i++)
50        {
51            LuoPallo(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top));
52        }
53
54        for (int i = 0; i < 60; i++)
55        {
56            LuoPahaPallo(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top));
57        }
58
59        Level.Background.Color = Color.Black;
60        Level.CreateBorders();
61    }
62
63    void LuoPallo(double x, double y)
64    {
65        PhysicsObject pallo = new PhysicsObject(10, 10);
66        pallo.Tag = "pallo";
67        pallo.Shape = Shape.Circle;
68        pallo.X = x;
69        pallo.Y = y;
70        Add(pallo);
71    }
72
73    void LuoPahaPallo(double x, double y)
74    {
75        PhysicsObject pallo = new PhysicsObject(20, 20);
76        pallo.Tag = "pahapallo";
77        pallo.Shape = Shape.Circle;
78        pallo.Color = Color.Red;
79        pallo.X = x;
80        pallo.Y = y;
81        Add(pallo);
82    }
83
84    void LisaaOhjaimet()
85    {
86        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
87
88        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Pelaaja liikkuu ylös", new Vector(0, nopeus));
89        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "Pelaaja liikkuu alas", new Vector(0, -nopeus));
90        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", new Vector(-nopeus, 0));
91        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", new Vector(nopeus, 0));
92    }
93
94    void Liikuta(Vector suunta)
95    {
96        pelaaja.Push(suunta);
97    }
98}
Note: See TracBrowser for help on using the repository browser.