source: 2016/24/LasseK/TankkiPeli/TankkiPeli/TankkiPeli/TankkiPeli.cs @ 7334

Revision 7334, 2.9 KB checked in by latukova, 5 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class TankkiPeli : PhysicsGame
10{
11    Image Tykkikuva = LoadImage("Tykki");
12    Image TankkiRunko = LoadImage("VaununRunko");
13    Image Tornikuva = LoadImage("Tykkitorni");
14
15    PhysicsObject Tankki;
16    PhysicsObject Torni;
17    PhysicsObject Tykki;
18    public override void Begin()
19
20    {
21        Kentta();
22        LuoTankki();
23        AsetaOhjaimet();
24           
25    }
26
27    void LiikutaTykkiä(PhysicsObject Tykki, double Suunta)
28    {
29   
30   
31    }
32
33    void AsetaOhjaimet()
34    {
35        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
36        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaTankkia, "Liikuttaa Tankkia Vasempaan", Tankki, new Vector(-800, 0));
37        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaTankkia, "Liikuttaa Tankkia Oikeaan", Tankki, new Vector(550, 0));
38
39        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaTykkiä, "Liikuta Tykkiä Ylös", Tykki, 0.1);
40
41    }
42
43    void Tahtaa(AnalogState hiirenLiike)
44    {
45        if (Mouse.PositionOnWorld.X > Tankki.Position.X)
46        {
47            Torni.Image = Image.Mirror(Tornikuva);
48            Tykki.Image = Image.Mirror(Tykkikuva);
49            Tykki.Position = Torni.Position + new Vector(10, 1);
50        }
51        else
52        {
53            Torni.Image = Tornikuva;
54            Tykki.Image = Image.Mirror(Tykkikuva);
55            Tykki.Position = Torni.Position + new Vector(-10, 1);
56        }
57
58       
59        Angle suunta = ((Mouse.PositionOnWorld - Tykki.AbsolutePosition).Normalize()).Angle;
60        Tykki.Position = Vector.FromLengthAndAngle(Tykki.Width, suunta);
61        Tykki.Angle = suunta;
62    }
63
64
65    void Kentta()
66    {
67        Surface alaReuna = Surface.CreateBottom(Level, 100, 300, 100, 5);
68        Add(alaReuna);
69        Level.CreateLeftBorder(0, true);
70        Level.CreateRightBorder(0, true);
71        Gravity = new Vector(0, -500);
72
73    }
74    void LuoTankki()
75    {
76
77        Tankki = new PhysicsObject(150, 75);
78        Tankki.Image = TankkiRunko;
79        Tankki.LinearDamping = 0.95;
80        Tankki.Position = new Vector(-200, -350);
81        Add(Tankki);
82
83        Torni = new PhysicsObject(75, 37);
84        Torni.Image = Tornikuva;
85        Torni.IgnoresPhysicsLogics = true;
86        Torni.Position = Torni.Position + new Vector(0, 38);
87        Tankki.Add(Torni);
88
89        Tykki = new PhysicsObject(80, 10); //80
90        Tykki.Image = Tykkikuva;
91        Tykki.Position = Torni.Position + new Vector(10, 1 + Torni.Height);  //Torni.Position + new Vector(70, 1);
92        Tykki.IgnoresPhysicsLogics = true;
93        Tankki.Add(Tykki);
94
95       
96
97    }
98    void LiikutaTankkia(PhysicsObject Tankki, Vector suunta)
99    {
100        Tankki.Push(suunta);
101
102    }
103
104}
Note: See TracBrowser for help on using the repository browser.