source: joonas_v/Olijoharjoituksia/Peli.cs @ 256

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