source: 2016/30/TimoH/Ponki/Ponki/Ponki/Ponki.cs @ 8083

Revision 8083, 4.5 KB checked in by tihaapas, 3 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 Ponki : PhysicsGame
10{
11    Image oliokuva = LoadImage("kuva1");
12   
13   
14    Vector nopeusYlos = new Vector(0, 200);
15    Vector nopeusAlas = new Vector(0, -200);
16
17    PhysicsObject pallo;
18    PhysicsObject maila;
19    PhysicsObject kapula;
20   
21    IntMeter pelaajan1Pisteet;
22    IntMeter pelaajan2Pisteet;
23
24
25    public override void Begin()
26    {
27        Luokentta();
28        asetaohjaimet();
29        aloitapeli();
30        LisaaLaskurit();
31       
32
33
34        // TODO: Kirjoita ohjelmakoodisi tähän
35
36
37    }
38
39    void Luokentta()
40    {
41        pallo = new PhysicsObject(50, 50);
42        Add(pallo);
43        pallo.Shape = Shape.Circle;
44        pallo.Color = Color.Red;
45        pallo.Restitution = 1;
46        pallo.Image = oliokuva;
47
48        maila = luoKapulat(Level.Left + 20, 0);
49        kapula = luoKapulat(Level.Right - 20, 0);
50
51        AddCollisionHandler(pallo, KasittelePallonTormays);
52
53
54        PhysicsObject vasenReuna = Level.CreateLeftBorder();
55        vasenReuna.Restitution = 10.0;
56        vasenReuna.IsVisible = false;
57
58        PhysicsObject oikeaReuna = Level.CreateRightBorder();
59        oikeaReuna.Restitution = 10.0;
60        oikeaReuna.KineticFriction = 0.0;
61        oikeaReuna.IsVisible = false;
62
63        PhysicsObject ylaReuna = Level.CreateTopBorder();
64        ylaReuna.Restitution = 10.0;
65        ylaReuna.KineticFriction = 0.0;
66        ylaReuna.IsVisible = false;
67
68        PhysicsObject alaReuna = Level.CreateBottomBorder();
69        alaReuna.Restitution = 10.0;
70        alaReuna.IsVisible = false;
71        alaReuna.KineticFriction = 0.0;
72
73
74
75
76        Level.Background.Color = Color.Green;
77       
78
79        Camera.ZoomToLevel();
80
81    }
82
83    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde)
84    {
85
86    }
87
88    void aloitapeli()
89    {
90        Vector Intussi = new Vector(500, 0);
91        pallo.Hit(Intussi);
92
93
94
95    }
96
97    PhysicsObject luoKapulat(double x, double y)
98    {
99        PhysicsObject maila = PhysicsObject.CreateStaticObject(20, 100);
100        maila.Shape = Shape.Rectangle;
101        maila.X = x;
102        maila.Y = y;
103        maila.Restitution = 1;
104        maila.Color = Color.Gold;
105        Add(maila);
106        return maila;
107
108    }
109
110    void asetaohjaimet()
111    {
112        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "pelaaja 1 : Liikuta mailaa ylös", maila, nopeusYlos);
113        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero);
114        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila, nopeusAlas);
115        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila, Vector.Zero);
116
117
118        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", kapula, nopeusYlos);
119        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, kapula, Vector.Zero);
120        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", kapula, nopeusAlas);
121        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, kapula, Vector.Zero);
122
123        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "näytä ohjeus");
124        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
125
126    }
127
128    void AsetaNopeus(PhysicsObject maila, Vector nopeus)
129    {
130        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom))
131        {
132            maila.Velocity = Vector.Zero;
133            return;
134        }
135        if ((nopeus.Y > 0) && (maila.Top > Level.Top))
136        {
137            maila.Velocity = Vector.Zero;
138            return;
139        }
140
141        maila.Velocity = nopeus;
142    }
143
144    void LisaaLaskurit()
145    {
146       
147        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
148        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0);
149    }
150
151    IntMeter LuoPisteLaskuri(double x, double y)
152    {
153        IntMeter laskuri = new IntMeter(0);
154        laskuri.MaxValue = 10;
155        return laskuri;
156
157        Label naytto = new Label();
158        naytto.BindTo(laskuri);
159        naytto.X = x;
160        naytto.Y = y;
161        naytto.TextColor = Color.White;
162        naytto.BorderColor = Level.Background.Color;
163        naytto.Color = Level.Background.Color;
164        Add(naytto);
165    }
166}
Note: See TracBrowser for help on using the repository browser.