source: 2009/kyosti_s/Olioharjoituksia/Peli.cs @ 2514

Revision 264, 2.5 KB checked in by kykasalo, 10 years ago (diff)
Line 
1#region Usings
2using System;
3using System.Collections.Generic;
4using System.Linq;
5using Microsoft.Xna.Framework;
6using Microsoft.Xna.Framework.Audio;
7using Microsoft.Xna.Framework.Content;
8using Microsoft.Xna.Framework.Graphics;
9using Microsoft.Xna.Framework.Input;
10using Microsoft.Xna.Framework.Media;
11using Jypeli;
12using Jypeli.ScreenObjects;
13using Jypeli.Assets;
14using AdvanceMath;
15using Physics2DDotNet;
16using Physics2DDotNet.Shapes;
17#endregion
18
19namespace Olioharjoituksia
20{
21    public class Peli : PhysicsGame
22    {
23        Tank tankki;
24        CannonBall kuula;
25
26        protected override void LoadContent()
27        {
28            // Luodaan tankki ja lisätään se peliin
29            tankki = new Tank(this, "tankki");
30            Level.Objects.Add(tankki);
31
32            LuoKuula(20, 1, 200, 100);
33            LuoKuula(40, 20, -200, 100);
34
35            // Luodaan maasto
36            Level.CreateGround(10, 50, 20, Color.LightGreen);
37
38            // Luodaan reunat
39            Level.CreateBorder();
40
41            // Asemoidaan tankki
42            tankki.Y = Level.Bottom + 100;
43
44            // Asetetaan painovoima
45            Gravity = new Vector2D(0, -200);
46
47            // Asetetaan näppäimet
48            Controls.Listen(Keys.Left, ButtonPosition.Down, aja, "Liiku vasemmalle", tankki, Tank.MaxTorque / 2);
49            Controls.Listen(Keys.Right, ButtonPosition.Down, aja, "Liiku oikealle", tankki, -Tank.MaxTorque / 2);
50            Controls.Listen(Keys.Up, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1));
51            Controls.Listen(Keys.Down, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki, Angle.Degrees(-1));
52        }
53
54        bool aja(ControlEvent e)
55        {
56            Tank t = e.Parameter0 as Tank;
57            double vaanto = e.Parameter1.ToDouble();
58
59            // Kiihdytetään tankin vauhtia
60            t.Accelerate(vaanto);
61
62            return false;
63        }
64
65        bool kaannaPutkea(ControlEvent e)
66        {
67            Tank t = e.Parameter0 as Tank;
68            Angle kaanto = e.Parameter1.ToAngle();
69
70            // Tässä käännetään tankin piippua
71            t.TurnCannon(kaanto);
72
73            return false;
74        }
75
76        void LuoKuula(double sade, double massa, double x, double y)
77        {
78            kuula = new CannonBall(sade, massa);
79            kuula.X = x;
80            kuula.Y = y;
81            Level.Objects.Add(kuula);
82        }
83    }
84}
Note: See TracBrowser for help on using the repository browser.