source: lassi_h/Tankkipeli/Peli.cs @ 62

Revision 62, 2.7 KB checked in by lamahama, 11 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 Tankkipeli
20{
21    public class Peli : PhysicsGame
22    {
23        Tank tankki;
24
25        protected override void LoadContent()
26        {
27            // Luodaan tankki ja lisätään se peliin
28            tankki = new Tank(this, "tankki");
29            Level.Objects.Add(tankki);
30
31            // Luodaan maasto
32            Level.CreateGround(10, 50, 20, Color.LightGreen);
33
34            // Luodaan reunat
35            Level.CreateBorder();
36
37            // Asemoidaan tankki
38            tankki.Y = Level.Bottom + 100;
39            Double Power = 100.0;
40            // Asetetaan painovoima
41            Gravity = new Vector2D(10, -200);
42
43            // Asetetaan näppäimet
44            Controls.Listen(Keys.Left, ButtonPosition.Down, aja, "Liiku vasemmalle", tankki, Tank.MaxTorque*2);
45            Controls.Listen(Keys.Right, ButtonPosition.Down, aja, "Liiku oikealle", tankki, -Tank.MaxTorque*2);
46            Controls.Listen(Keys.Up, ButtonPosition.Down, kaannaPutkea, "Käännä putkea vastapäivään", tankki, Angle.Degrees(1));
47            Controls.Listen(Keys.Down, ButtonPosition.Down, kaannaPutkea, "Käännä putkea myötäpäivään", tankki, Angle.Degrees(-1));
48            Controls.Listen(Keys.Space, ButtonPosition.Down, ammupanos, "Ammu", tankki, Power);
49        }
50
51        bool aja(ControlEvent e)
52        {
53            Tank t = e.Parameter0 as Tank;
54            double vaanto = e.Parameter1.ToDouble();
55
56            // Kiihdytetään tankin vauhtia
57            t.Accelerate(vaanto);
58
59            return false;
60        }
61
62        bool kaannaPutkea(ControlEvent e)
63        {
64            Tank t = e.Parameter0 as Tank;
65            Angle kaanto = e.Parameter1.ToAngle();
66
67            // Tässä käännetään tankin piippua
68            t.TurnCannon(kaanto);
69
70            return false;
71        }
72        bool ammupanos(ControlEvent e)
73        {
74            Tank t = e.Parameter0 as Tank;
75            Double voima = e.Parameter1.ToDouble();
76            CannonBall panos = new CannonBall();
77            panos.Shape = Shapes.CreateCircle(10.0);
78            panos.Damage = new Damage(10);
79            panos.ClusterType = new ClusterCannonball(10);
80           
81            t.Shoot(10000.0);
82           
83            return false;
84        }
85    }
86}
Note: See TracBrowser for help on using the repository browser.