source: 2017/24/TomiK/AvaruusTaistelu/AvaruusTaistelu/AvaruusTaistelu/AvaruusTaistelu.cs @ 8775

Revision 8775, 5.1 KB checked in by npo17_15, 4 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 AvaruusTaistelu : PhysicsGame
10{
11
12    List<Vector> lista = new List<Vector>();
13    LaserGun aluksenAse;
14    PhysicsObject uuni;
15    PhysicsObject vihollinen;
16    Image Vihollinenkuva = LoadImage("Vihollinen2");
17    Image Asteroidkuva = LoadImage("Asteroidi");
18    Image Rakettikuva = LoadImage("Raketti2");
19    PhysicsObject asteroid;
20    Vector nopeusYlos = new Vector(0, 200);
21    Vector nopeusAlas = new Vector(0, -200);
22    Vector nopeusVasemmalle = new Vector(-200, 0);
23    Vector nopeusOikealle = new Vector(200, 0);
24    PhysicsObject alus;
25    public override void Begin()
26    {
27
28
29        Mouse.IsCursorVisible = true;
30
31        alus = new PhysicsObject(60.0, 40.0);
32        alus.X = 400.0;
33        alus.Y = 400.0;
34        alus.Tag = "pelaaja";
35        Add(alus);
36        alus.Image = Rakettikuva;
37        Camera.Follow(alus);
38       
39
40
41        SmoothTextures = false;
42
43     
44
45       // asteroid = new PhysicsObject(100.0, 100.0);
46       // asteroid.Image = Asteroidkuva;
47
48       // Add(asteroid);
49
50       // asteroid = new PhysicsObject(400.0, 400.0);
51       // asteroid.Image = Asteroidkuva;
52
53       // Add(asteroid);
54
55
56        aluksenAse = new LaserGun(20, 5);
57        aluksenAse.Ammo.Value = 10000; 
58        aluksenAse.ProjectileCollision = AmmusOsui;
59        alus.Add(aluksenAse);
60        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", aluksenAse);
61        aluksenAse.FireRate = 10.0;
62     
63
64
65
66
67
68        // Gravity = new Vector(0.0, -500.0);
69
70        Image tausta = LoadImage("taustakuva");
71        Level.Background.Image = tausta;
72        Level.Background.Height = 2460;
73        Level.Background.Width = 5160;
74
75        ohjaimet();
76        //Vihollinen();
77        LuoKentta();
78
79        Mouse.ListenMovement(0.1, Tahtaa, "tahtaa aseella");
80
81   
82
83    }
84    void AmmuAseella(LaserGun ase)
85    {
86        PhysicsObject ammus = ase.Shoot();
87        //ammus.Tag = "ammus";
88        if (ammus != null)
89        {
90
91
92        }
93
94
95  }
96    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
97    {
98        if(kohde.Tag != "seina") { kohde.Destroy(); }
99       
100    }
101    void Tahtaa(AnalogState hiirenLiike)
102    {
103        Vector suunta = (Mouse.PositionOnWorld - alus.AbsolutePosition).Normalize();
104        alus.Angle = suunta.Angle;
105    }
106
107    void LuoKentta()
108{
109            TileMap ruudut = TileMap.FromLevelAsset("kentta1");
110           
111            ruudut.SetTileMethod('#', LuoPalikka);
112            ruudut.SetTileMethod('V', vihollislista);
113            ruudut.Execute(20, 20);
114            luovihollislaskuri();
115
116    }
117
118     void vihollislista(Vector paikka, double leveys, double korkeus)
119    {
120        lista.Add(paikka);
121    }
122    void luovihollislaskuri()
123    {
124        Timer vihuajastin = new Timer();
125        vihuajastin.Interval = 1;
126        vihuajastin.Timeout += AikaLoppui;
127        vihuajastin.Start();
128
129    }
130    void AikaLoppui()
131    {
132        int arvo = RandomGen.NextInt(0, lista.Count);
133         Vihollinen( lista[arvo]);
134    }
135void LuoPalikka(Vector paikka, double leveys, double korkeus)
136{
137    PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
138    taso.Position = paikka;
139        taso.Tag = "seina";
140   
141    Add(taso);
142
143}
144
145    void Vihollinen(Vector paikka)
146    {
147        vihollinen = new PhysicsObject(60.0, 40.0);
148        Add(vihollinen);
149        vihollinen.Image = Vihollinenkuva;
150        FollowerBrain seuraajanAivot = new FollowerBrain(alus);
151        seuraajanAivot.Speed = 300;
152        seuraajanAivot.Active = true;
153        seuraajanAivot.TurnWhileMoving = true;
154        vihollinen.Brain = seuraajanAivot;
155        AddCollisionHandler(vihollinen, "pelaaja",tuhoapelaaja);
156        vihollinen.Position = paikka;
157    }
158    void tuhoapelaaja(PhysicsObject vihollinen,PhysicsObject pelaaja)
159    {
160        pelaaja.Destroy();
161    }
162
163
164    void ohjaimet()
165    {
166        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
167
168        Keyboard.Listen(Key.W, ButtonState.Down, asetanopeus, " Liikuta alusta ylös", alus, nopeusYlos);
169        Keyboard.Listen(Key.W, ButtonState.Released, asetanopeus, null, alus, Vector.Zero);
170        Keyboard.Listen(Key.S, ButtonState.Down, asetanopeus, " Liikuta alusta alas", alus, nopeusAlas);
171        Keyboard.Listen(Key.S, ButtonState.Released, asetanopeus, null, alus, Vector.Zero);
172        Keyboard.Listen(Key.A, ButtonState.Down, asetanopeus, " Liikuta alusta vasemmalle", alus, nopeusVasemmalle);
173        Keyboard.Listen(Key.A, ButtonState.Released, asetanopeus, null, alus, Vector.Zero);
174        Keyboard.Listen(Key.D, ButtonState.Down, asetanopeus, " Liikuta alusta oikealle", alus, nopeusOikealle);
175        Keyboard.Listen(Key.D, ButtonState.Released, asetanopeus, null, alus, Vector.Zero);
176       // Keyboard.Listen(Key.Space, ButtonState.Pressed,);
177    }
178
179    void asetanopeus(PhysicsObject alus, Vector nopeus)
180    {
181        alus.Velocity = nopeus;
182
183
184    }
185
186
187
188}
Note: See TracBrowser for help on using the repository browser.