source: 2016/25/AaroV/Tankz/Tankz/Tankz/Tankz.cs @ 7477

Revision 7477, 3.0 KB checked in by koannak, 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 Tankz : PhysicsGame
10{
11    Tankki tankki;
12    Tankki tankki2;
13    Tankki tankki3;
14    public override void Begin()
15    {
16        tankki = Luotankki(-300,-100);
17        tankki2 = Luotankki(300,-100);
18        tankki3 = Luotankki(0, -100);
19        Surface maasto = Surface.CreateBottom(Level, 50, 200, 20, 50);
20        Add(maasto);
21        Gravity = new Vector(0, -600);
22        Keyboard.Listen(Key.Down, ButtonState.Down, KaannaTykkia,null, tankki, -1.0);
23        Keyboard.Listen(Key.Up, ButtonState.Down, KaannaTykkia,null, tankki, 1.0);
24        Keyboard.Listen(Key.RightShift, ButtonState.Released, Ammu,null, tankki);
25        Keyboard.Listen(Key.W, ButtonState.Down, KaannaTykkia, null, tankki2, -1.0);
26        Keyboard.Listen(Key.S, ButtonState.Down, KaannaTykkia, null, tankki2, 1.0);
27        Keyboard.Listen(Key.Q, ButtonState.Released, Ammu, null, tankki2);
28        Keyboard.Listen(Key.A, ButtonState.Down, KaannaTykkia, null, tankki3, -1.0);
29        Keyboard.Listen(Key.Z, ButtonState.Down, KaannaTykkia, null, tankki3, 1.0);
30        Keyboard.Listen(Key.LeftShift, ButtonState.Released, Ammu, null, tankki3);
31
32
33        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
34        Level.Background.Color = Color.MediumTurquoise;
35        Camera.ZoomToAllObjects();
36
37    }
38     void KaannaTykkia(Tankki tankki, Double kulma)
39    {
40        tankki.kulma += kulma;
41    }void Ammu(Tankki tankki) {
42
43        Vector suunta = Vector.FromLengthAndAngle(tankki.tykki.Width, tankki.tykki.AbsoluteAngle);
44        PhysicsObject ammus = new PhysicsObject(10, 2);
45        ammus.Position = tankki.Position + suunta;
46        ammus.CollisionIgnoreGroup = tankki.CollisionIgnoreGroup;
47        ammus.Angle = tankki.tykki.AbsoluteAngle ;
48        Add(ammus);
49        ammus.Velocity = Vector.FromLengthAndAngle(800, tankki.tykki.AbsoluteAngle ) ;
50    }
51    Tankki Luotankki(Double X, Double Y) {
52       Tankki tankki = new Tankki(30, 30);
53        tankki.CollisionIgnoreGroup = 2;
54        Add(tankki);
55        tankki.X = X;
56        tankki.Y = Y;
57       
58        return tankki;
59    }
60
61
62
63
64
65}
66
67
68
69class Tankki : PhysicsObject
70{
71    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3);
72    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
73    public GameObject tykki { get; set; }
74    public Double kulma { get; set; }
75    public Tankki(double leveys, double korkeus)
76        : base(leveys, korkeus)
77    {
78        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
79        tykki = new GameObject(this.Width / 1.5, this.Width / 5.0);
80        Add(tykki);
81        IsUpdated = true;
82    }
83   
84
85    public override void Update(Time time)
86    {
87        tykki.Position = Vector.FromLengthAndAngle(tykki.Width * 1, Angle.FromDegrees(kulma));
88        tykki.Angle = Angle.FromDegrees(kulma);
89
90        base.Update(time);
91
92       
93    }
94}
Note: See TracBrowser for help on using the repository browser.