source: 2011/31/HenryS/TankDuel/TankDuel/TankDuel/Peli.cs @ 2521

Revision 2521, 5.9 KB checked in by hejusiuk, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    List<Label> valikonKohdat;
12    Vector nopeus1Ylos = new Vector(0, 200);
13    Vector nopeus1Alas = new Vector(0, -200);
14    Vector nopeus2Ylos = new Vector(0, 200);
15    Vector nopeus2Alas = new Vector(0, -200);
16    Vector nopeus1Oikealle = new Vector(200, 0);
17    Vector nopeus1Vasemmalle = new Vector(-200, 0);
18    Vector nopeus2Oikealle = new Vector(200, 0);
19    Vector nopeus2Vasemmalle = new Vector(-200, 0);
20    PhysicsObject pelaaja1;
21    PhysicsObject pelaaja2;
22    Image oliomkuva = LoadImage("tank");
23    Image tankki = LoadImage("tank2");
24    PhysicsObject este;
25
26    public override void Begin()
27    {
28
29       
30        LuoKenttä();
31        Valikko();
32        pelaajat();
33        AsetaOhjaimet();
34    }
35
36
37
38    void pelaajat()
39    {
40
41        pelaaja1 = new PhysicsObject(90.0, 50.0);
42        pelaaja1.Image = oliomkuva;
43        pelaaja1.X = -400;
44        pelaaja1.Y = 350;
45        pelaaja1.CanRotate=false;
46        Add(pelaaja1);
47       
48        pelaaja2 = new PhysicsObject(90.0, 50.0);
49        pelaaja2.X = 400;
50        pelaaja2.Y = -350;
51        pelaaja2.Image = tankki;
52        pelaaja2.CanRotate = false;
53        Add(pelaaja2);
54       
55
56    }
57    void AsetaOhjaimet()
58    {
59
60
61        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liiku ylös", pelaaja1, nopeus1Ylos, Angle.FromDegrees (90));
62        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, pelaaja1, Vector.Zero, Angle.FromDegrees(90));
63        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liiku alas", pelaaja1, nopeus1Alas, Angle.FromDegrees (-90));
64        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, pelaaja1, Vector.Zero, Angle.FromDegrees (-90));
65       
66
67        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus2, "Pelaaja 2: Liiku ylös", pelaaja2, nopeus2Ylos, Angle.FromDegrees(90));
68        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus2, null, pelaaja2, Vector.Zero, Angle.FromDegrees(90));
69        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus2, "Pelaaja 2: Liiku alas", pelaaja2, nopeus2Alas, Angle.FromDegrees(-90));
70        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus2, null, pelaaja2, Vector.Zero, Angle.FromDegrees(-90));
71
72        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liiku oikealle", pelaaja1, nopeus1Oikealle, Angle.FromDegrees (0));
73        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, pelaaja1, Vector.Zero,Angle.FromDegrees(0));
74        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liiku vasemmalle", pelaaja1, nopeus1Vasemmalle, Angle.FromDegrees(180));
75        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, pelaaja1, Vector.Zero, Angle.FromDegrees(180));
76
77        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus2, "Pelaaja 2: Liiku oikealle", pelaaja2, nopeus2Oikealle, Angle.FromDegrees (0));
78        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus2, null, pelaaja1, Vector.Zero, Angle.FromDegrees (0));
79        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus2, "Pelaaja 2: Liiku vasemmalle", pelaaja2, nopeus2Vasemmalle, Angle.FromDegrees(180));
80        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus2, null, pelaaja1, Vector.Zero, Angle.FromDegrees(180));
81
82        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
83
84
85        return;
86       
87    }
88
89    void AsetaNopeus(PhysicsObject pelaaja1, Vector nopeus1, Angle kulma)
90    {
91        pelaaja1.Velocity = nopeus1;
92        pelaaja1.Angle = kulma;
93       
94    }
95
96    void AsetaNopeus2(PhysicsObject pelaaja1, Vector nopeus2, Angle kulma)
97    {
98        pelaaja2.Velocity = nopeus2;
99        pelaaja2.Angle = kulma;
100
101    }
102
103
104
105   
106
107    void LuoKenttä()
108    {
109        int i = 0;
110
111        while (i < 20)
112        {
113            este = PhysicsObject.CreateStaticObject(60.0, 60.0);
114            este.Color = Color.Gray;
115            este.CanRotate = false;
116            este.X = RandomGen.NextDouble(Level.Left, Level.Right);
117            este.Y = RandomGen.NextDouble(Level.Left, Level.Right);
118            Add(este);
119            i++;
120        }
121
122        Level.CreateBorders(1.0, false);
123        Level.BackgroundColor = Color.ForestGreen;
124        Camera.ZoomToLevel();
125       
126       
127
128       
129   
130    }
131
132    void Valikko()
133    {
134        ClearAll();
135        valikonKohdat = new List<Label>();
136
137        Label kohta1 = new Label("Aloita uusi peli");
138        kohta1.Position = new Vector(0, 40);
139        valikonKohdat.Add(kohta1);
140
141        Label kohta2 = new Label("Lopeta");
142        kohta2.Position = new Vector(0, -40);
143        valikonKohdat.Add(kohta2);
144
145        foreach (Label valikonKohta in valikonKohdat)
146        {
147            Add(valikonKohta);
148        }
149
150        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
151        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
152
153        Mouse.IsCursorVisible = true;
154        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
155        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
156
157    }
158
159
160    void ValikossaLiikkuminen(AnalogState hiirenTila)
161    {
162        foreach (Label kohta in valikonKohdat)
163        {
164            if (Mouse.IsCursorOn(kohta))
165            {
166                kohta.TextColor = Color.Red;
167            }
168            else
169            {
170                kohta.TextColor = Color.Black;
171            }
172
173        }
174    }
175
176    void AloitaPeli()
177    {
178        ClearAll();
179        LuoKenttä();
180        pelaajat();
181        AsetaOhjaimet();
182        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa valikkoon");
183    }
184
185   
186
187}
Note: See TracBrowser for help on using the repository browser.