source: 2015/26/PatrikL/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 6191

Revision 6191, 3.8 KB checked in by sieerinn, 4 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 FysiikkaPeli1 : PhysicsGame
10{
11    PhysicsObject maila1;
12    PhysicsObject maila2;
13    IntMeter pelaajan1Pisteet;
14    IntMeter pelaajan2Pisteet;
15
16    Vector nopeusYlös = new Vector(0.0, 200);
17    Vector nopeusAlas = new Vector(0.0, -200);
18    PhysicsObject vasenReuna;
19    PhysicsObject oikeaReuna;
20
21
22
23
24
25
26    public override void Begin()
27    {
28
29        Level.CreateBorders(1.0, false);
30        Level.Background.Color = Color.Blue;
31        Camera.ZoomToLevel();
32        LuoKenttä();
33        LisaaLaskurit();
34       
35
36
37        maila1 = LuoMaila(Level.Left + 20.0, 0.0);
38        maila2 = LuoMaila(Level.Right - 20.0, 0.0);
39
40        AsetaOhjaimet();
41    }
42    void LuoKenttä()
43    {
44
45        PhysicsObject pallo = new PhysicsObject(40.0, 40.0);
46        pallo.Shape = Shape.Circle;
47        Add(pallo);
48
49        Vector impulssi = new Vector(100.0, 0.0);
50        pallo.Hit(impulssi);
51
52        pallo.X = -200.0;
53        pallo.Y = 0.0;
54        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
55
56        vasenReuna = Level.CreateLeftBorder();
57        vasenReuna.Restitution = 1.0;
58        vasenReuna.IsVisible = false;
59
60        oikeaReuna = Level.CreateRightBorder();
61        oikeaReuna.Restitution = 1.0;
62        oikeaReuna.IsVisible = false;
63        AddCollisionHandler(pallo, KasittelePallonTormays);
64    }
65
66    PhysicsObject LuoMaila(double x, double y)
67    {
68
69        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0);
70        maila.Shape = Shape.Rectangle;
71        maila.X = x;
72        maila.Y = y;
73        maila.Restitution = 1.0;
74        Add(maila);
75        return maila;
76    }
77
78    void AsetaOhjaimet()
79    {
80        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, null, maila1, nopeusYlös);
81        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);
82        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, null, maila1, nopeusAlas);
83        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);
84
85        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, null, maila2, nopeusYlös);
86        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero);
87        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, null, maila2, nopeusAlas);
88        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero);
89        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, null);
90        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, null);
91    }
92
93    void AsetaNopeus(PhysicsObject maila, Vector nopeus)
94    {
95        maila.Velocity = nopeus;
96
97
98
99
100    }
101
102    IntMeter LuoPisteLaskuri(double x, double y)
103    {
104        IntMeter laskuri = new IntMeter(0);
105        laskuri.MaxValue = 10;
106
107        Label naytto = new Label();
108        naytto.BindTo(laskuri);
109        naytto.X = x;
110        naytto.Y = y;
111        naytto.TextColor = Color.Lime;
112        naytto.BorderColor = Level.Background.Color;
113        naytto.Color = Level.Background.Color;
114        Add(naytto);
115
116        return laskuri;
117    }
118
119    void LisaaLaskurit()
120    {
121        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
122        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0);
123
124    }
125
126    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde)
127    {
128        if (kohde == oikeaReuna)
129        {
130            pelaajan1Pisteet.Value += 1;
131        }
132        else if (kohde == vasenReuna)
133        {
134            pelaajan2Pisteet.Value += 1;
135
136        }
137    }
138}
Note: See TracBrowser for help on using the repository browser.