source: 2017/27/MikaelL/Avaruuspeli/Avaruuspeli/Avaruuspeli/Avaruuspeli.cs @ 8927

Revision 8927, 3.7 KB checked in by npo17_33, 2 years ago (diff)

yhdellä on ase ja sairaan suuri räjähdys

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Avaruuspeli : PhysicsGame
10{ Image avaruusaluskuva = LoadImage("avaruusalus");
11    Image kivenKuva = LoadImage("kivi");
12    Image taustakuva = LoadImage("taustakuva");
13
14    PhysicsObject pelaaja1;
15    PhysicsObject pelaaja2;
16    PlasmaCannon plasmaTykki;
17
18    public override void Begin()
19    {
20        // TODO: Kirjoita ohjelmakoodisi tähän
21        Level.Width = Window.Width;
22        Level.Height = Window.Height;
23        Level.Background.Image = taustakuva;
24
25        Level.Background.FitToLevel();
26        Level.CreateBorders();
27
28        pelaaja1 = LuoAvaruusalus(100, 100);
29        pelaaja2 = LuoAvaruusalus(10, 10);
30
31
32        plasmaTykki = new PlasmaCannon(20, 5);
33        plasmaTykki.ProjectileCollision = AmmusOsui;
34        plasmaTykki.FireRate = 5.0;
35
36        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
37
38
39
40
41
42        pelaaja1.Add(plasmaTykki);
43
44        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
45        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
46
47        Keyboard.Listen(Key.Left, ButtonState.Down, KaannaKulmaa, null, pelaaja1, 5.0);
48        Keyboard.Listen(Key.Right, ButtonState.Down, KaannaKulmaa, null,pelaaja1, -5.0);
49        Keyboard.Listen(Key.Up, ButtonState.Down,Kaasuta , null, pelaaja1, 1000.0);
50        //Keyboard.Listen(Key.Down, ButtonState.Down,LiikutaPelaajaa, null,pelaaja1, new Vector(0, -1000));
51
52        Keyboard.Listen(Key.A, ButtonState.Down, KaannaKulmaa, null, pelaaja2, 5.0);
53        Keyboard.Listen(Key.D, ButtonState.Down, KaannaKulmaa, null, pelaaja2, -5.0);
54        Keyboard.Listen(Key.W, ButtonState.Down, Kaasuta, null, pelaaja2, 1000.0);
55
56
57
58
59
60
61
62
63
64
65        LuoKivi(100, 50);
66        LuoKivi(50, 100);
67        LuoKivi(29, 58);
68        LuoKivi(50, 79);
69        LuoKivi(600, 600);
70        LuoKivi(600, 200);
71        LuoKivi(400, 129);
72        LuoKivi(50, 60);
73
74       
75
76
77
78    }
79
80    void AmmuAseella(PhysicsObject pelaaja)
81    {
82        PhysicsObject ammus = plasmaTykki.Shoot();
83
84        if (ammus != null)
85        {
86            //ammus.Size *= 3;
87            //ammus.Image = ...
88            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
89        }
90    }
91
92    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
93    {
94        if (kohde.Tag.Equals("alus"))
95        {
96            Explosion rajahdys = new Explosion(10000000000000000000);
97            rajahdys.Position = kohde.Position;
98            Add(rajahdys);
99
100            kohde.Destroy();
101
102        }
103       
104
105    }
106
107
108
109
110    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector vektori)
111    {
112        pelaaja.Push(vektori);
113    }
114
115    void KaannaKulmaa(PhysicsObject pelaaja, double aste)
116    {
117        pelaaja.Angle += Angle.FromDegrees(aste);
118    }
119
120    void Kaasuta(PhysicsObject pelaaja, double kaasunMaara)
121    {
122        pelaaja.Push(pelaaja.Angle.GetVector() * kaasunMaara);
123    }
124
125
126    void LuoKivi(double x, double y)
127    {
128
129        PhysicsObject kivi = new PhysicsObject(100, 100);
130        kivi.Shape = Shape.Rectangle;
131        Add(kivi);
132        kivi.Image = kivenKuva;
133        kivi.X = x;
134        kivi.Y = y;
135
136   
137
138    }
139
140    PhysicsObject LuoAvaruusalus(double x, double y)
141    {
142        PhysicsObject avaruusalus = new PhysicsObject(40, 20);
143        avaruusalus.Image = avaruusaluskuva;
144        avaruusalus.Shape = Shape.Rectangle;
145        Add(avaruusalus);
146        avaruusalus.X = x;
147        avaruusalus.Y = y;
148        avaruusalus.Tag = "alus";
149        avaruusalus.AngularDamping = 0.1;
150
151        return avaruusalus;
152    }
153}
Note: See TracBrowser for help on using the repository browser.