source: 2017/utsjoki/WaltteriK/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 9135

Revision 9135, 3.4 KB checked in by sieerinn, 2 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    Vector nopeusYlos = new Vector(0, 20);
12    Vector nopeusAlas = new Vector(0, -20);
13    PhysicsObject pallo;
14    PhysicsObject maila1;
15    PhysicsObject maila2;
16    public override void Begin()
17    {
18        LuoKentta();
19        AloitaPeli();
20        LisääLiikuta();
21
22        //AsetaNopeus();
23
24        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
25
26        // TODO: Kirjoita ohjelmakoodisi tähän
27
28
29    }
30
31
32
33
34
35
36    void LuoKentta()
37    {
38        pallo = new PhysicsObject(40, 40);
39        pallo.Shape = Shape.Octagon;
40        pallo.Color = Color.YellowGreen;
41        pallo.X = -200.0;
42        pallo.Y = 0.0;
43        Level.CreateBorders(1.0, false);
44        pallo.Restitution = 100.0;
45        Level.Background.Color = Color.Black;
46
47
48
49
50        maila1 = LuoMaila(Level.Left + 2.0, 0.0);
51        maila2 = LuoMaila(Level.Right - 0.0, 0.0);
52
53
54        Camera.ZoomToLevel();
55        Add(pallo);
56    }
57
58
59
60    void AloitaPeli()
61    {
62        Vector impulssi = new Vector(5000000000000000000.0, 0.0);
63        pallo.Hit(impulssi);
64    }
65
66    PhysicsObject LuoMaila(double x, double y)
67    {
68        PhysicsObject maila = PhysicsObject.CreateStaticObject(100.0, 100.0);
69        maila.Shape = Shape.Rectangle;
70        maila.X = x;
71        maila.Y = y;
72        maila.Restitution = 1.0;
73        maila.Color = Color.YellowGreen;
74        Add(maila);
75        return maila;
76    }
77
78    void LisääLiikuta()
79    {
80        Keyboard.Listen(Key.W, ButtonState.Down, Liikutamailaa, "Up", new Vector(0.0, 200.0));
81        Keyboard.Listen(Key.S, ButtonState.Down, Liikutamailaa, "Down", new Vector(0.0, -200.0));
82        Keyboard.Listen(Key.A, ButtonState.Down, Liikutamailaa, "Left", new Vector(200.0, 0.0));
83        Keyboard.Listen(Key.D, ButtonState.Down, Liikutamailaa, "Right", new Vector(-200.0, 0.0));
84
85     
86    }
87    void liikutamailaa(Vector suunta)
88    {
89        maila1.push(suunta);
90    }
91    void AsetaNopeus(PhysicsObject maila, Vector nopeus)
92    {
93        if (maila.Top > Level.Top)
94        {
95            maila.Velocity = Vector.Zero;
96            return;
97        }
98        maila.Velocity = nopeus;
99        }
100    void AsetaNopeus(PhysicsObject maila, Vector nopeus)
101    {
102        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom))
103        {
104            maila.Velocity = Vector.Zero;
105            return;
106        }
107        if ((nopeus.Y > 0) && (maila.Top > Level.Top))
108        {
109            maila.Velocity = Vector.Zero;
110            return;
111        }
112
113        maila.Velocity = nopeus;
114    }
115    public override void Begin()
116    {
117        LuoKentta();
118        AsetaOhjaimet();
119        LisaaLaskurit();
120        AloitaPeli();
121    }
122    void LisaaLaskurit()
123    {
124        // ...
125    }
126    IntMeter LuoPisteLaskuri()
127    {
128        Label naytto = new Label();
129        naytto.BindTo(laskuri);
130        naytto.X = x;
131        naytto.Y = y;
132        naytto.TextColor = Color.White;
133        naytto.BorderColor = Level.Background.Color;
134        naytto.Color = Level.Background.Color;
135        Add(naytto);
136        IntMeter laskuri = new IntMeter(0);
137        laskuri.MaxValue = 10;
138        return laskuri;
139    }
140
141}
Note: See TracBrowser for help on using the repository browser.