source: werner_v/Tankkipeli1/Peli.cs @ 258

Revision 258, 2.8 KB checked in by wevantti, 12 years ago (diff)

Auto ja tankkipeli

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