source: 2016/26/JonniN/TankHero/TankHero/TankHero/TankHero.cs @ 7594

Revision 7594, 3.9 KB checked in by jonnurmi, 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 TankHero : PhysicsGame
10{
11    Cannon torni;
12    Image leopard2a4 = LoadImage("leopard2a4");
13    Image torninKuva = LoadImage("leopard2a4valmistorni");
14    Image kartanKuva = LoadImage("kartta");
15    Image puuKuva = LoadImage("puu");
16    Image hiekanKuva = LoadImage("hiekka");
17    PhysicsObject pelaaja;
18    public override void Begin()
19    {
20        Mouse.IsCursorVisible = true;
21        Vector kursoriruudulla = Mouse.PositionOnScreen;
22        Vector paikkakentällä = Mouse.PositionOnWorld;
23        LuoKentta();
24        LuoPelaaja();
25        LuoOhjaimet();
26        MediaPlayer.Play("684240_Zound---Metallic");
27
28
29        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
30        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
31    }
32    void LuoPelaaja()
33    {
34        pelaaja = new PhysicsObject(150, 200);
35        pelaaja.Shape = Shape.FromImage(leopard2a4);
36        pelaaja.Image = leopard2a4;
37        pelaaja.LinearDamping = 0.90;
38        pelaaja.AngularDamping = 0.95;
39        Add(pelaaja);
40        Camera.Zoom(1.5);
41        Camera.Follow(pelaaja);
42        pelaaja.IgnoresExplosions = true;
43
44
45        torni = new Cannon(180, 100);
46        torni.Shape = Shape.FromImage(torninKuva);
47        torni.Image = torninKuva;
48        torni.Position = new Vector(-9, -37);
49        torni.Ammo.Value = 10000;
50        pelaaja.Add(torni);
51
52    }
53    void LuoKentta()
54    {
55        Level.Background.Color = Color.LightGreen;
56        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kartta");
57        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), LuoHiekka);
58        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), LuoPuu);
59        ruudut.Execute(100, 100);
60        //Camera.ZoomToAllObjects();
61       
62
63    }
64    void LuoHiekka(Vector paikka, double leveys, double korkeus)
65    {
66        PhysicsObject hiekka = new PhysicsObject(100, 100);
67        hiekka.Image = hiekanKuva;
68        Add(hiekka);
69    }
70    void LuoPuu(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject puu = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        puu.Position = paikka;
74        puu.Image = puuKuva;
75        Add(puu);
76    }
77
78    void LuoOhjaimet()
79    {
80        Keyboard.Listen(Key.W, ButtonState.Down, Aja, null, new Vector(0, 1000));
81        Keyboard.Listen(Key.S, ButtonState.Down, Aja, null, new Vector(0, -700));
82        Keyboard.Listen(Key.A, ButtonState.Down, Kaanny, null, 1);
83        Keyboard.Listen(Key.D, ButtonState.Down, Kaanny, null, -1);
84
85        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, AmmuTykilla, "Ammu", torni);
86        Mouse.ListenMovement(0.1, TorninLiike, "Käännä tornia");
87
88       
89
90    }
91    void AmmuTykilla(Cannon tykki)
92    {
93        PhysicsObject ammus = tykki.Shoot();
94
95        if(ammus !=null)
96        {
97            ammus.Size *= 1;
98            tykki.FireRate = 10;
99            Explosion rajahdys = new Explosion(60);
100            rajahdys.Position = torni.AbsolutePosition + torni.AbsoluteAngle.GetVector().Normalize() * 95;
101            rajahdys.Speed = 500;
102            rajahdys.UseShockWave = false;
103            Add(rajahdys);
104        }
105        tykki.ProjectileCollision = AmmusOsuu;
106    }
107    void AmmusOsuu(PhysicsObject ammus, PhysicsObject kohde)
108    {
109        ammus.Destroy();
110       
111       
112    }
113    void TorninLiike(AnalogState hiirenLiike)
114    {
115        Vector suunta = (Mouse.PositionOnWorld - torni.AbsolutePosition).Normalize();
116        torni.AbsoluteAngle = suunta.Angle;
117    }
118    void Aja(Vector suunta)
119    {
120        Vector menosuunta = Vector.FromLengthAndAngle(suunta.Y, pelaaja.Angle);
121        pelaaja.Push(menosuunta);
122
123    }
124    void Kaanny(int kaannos)
125    {
126        pelaaja.Angle += Angle.FromDegrees(kaannos);
127    }
128}
Note: See TracBrowser for help on using the repository browser.