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

Revision 8929, 4.1 KB checked in by npo17_33, 2 years ago (diff)

peli toimii

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    PlasmaCannon plasmaTykki2;
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, plasmaTykki);
37
38
39
40
41
42        pelaaja1.Add(plasmaTykki);
43
44
45
46        plasmaTykki2 = new PlasmaCannon(20, 5);
47        plasmaTykki2.ProjectileCollision = AmmusOsui;
48        plasmaTykki2.FireRate = 5.0;
49
50        Keyboard.Listen(Key.D3, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2, plasmaTykki2);
51
52
53
54
55
56        pelaaja2.Add(plasmaTykki2);
57
58
59
60
61
62
63
64
65
66
67        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
68        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
69
70        Keyboard.Listen(Key.Left, ButtonState.Down, KaannaKulmaa, null, pelaaja1, 5.0);
71        Keyboard.Listen(Key.Right, ButtonState.Down, KaannaKulmaa, null,pelaaja1, -5.0);
72        Keyboard.Listen(Key.Up, ButtonState.Down,Kaasuta , null, pelaaja1, 1000.0);
73        //Keyboard.Listen(Key.Down, ButtonState.Down,LiikutaPelaajaa, null,pelaaja1, new Vector(0, -1000));
74
75        Keyboard.Listen(Key.A, ButtonState.Down, KaannaKulmaa, null, pelaaja2, 5.0);
76        Keyboard.Listen(Key.D, ButtonState.Down, KaannaKulmaa, null, pelaaja2, -5.0);
77        Keyboard.Listen(Key.W, ButtonState.Down, Kaasuta, null, pelaaja2, 1000.0);
78
79
80
81
82
83
84
85
86
87
88        LuoKivi(100, 50);
89        LuoKivi(50, 100);
90        LuoKivi(29, 58);
91        LuoKivi(50, 79);
92        LuoKivi(600, 600);
93        LuoKivi(600, 200);
94        LuoKivi(400, 129);
95        LuoKivi(50, 60);
96
97       
98
99
100
101    }
102
103    void AmmuAseella(PhysicsObject pelaaja, Weapon plasmaTykki)
104    {
105        PhysicsObject ammus = plasmaTykki.Shoot();
106
107        if (ammus != null)
108        {
109            //ammus.Size *= 3;
110            //ammus.Image = ...
111            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
112        }
113    }
114
115    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
116    {
117        if (kohde.Tag.Equals("alus"))
118        {
119            Explosion rajahdys = new Explosion(10000000000000000000);
120            rajahdys.Position = kohde.Position;
121            Add(rajahdys);
122
123            kohde.Destroy();
124
125        }
126       
127
128    }
129
130
131
132
133    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector vektori)
134    {
135        pelaaja.Push(vektori);
136    }
137
138    void KaannaKulmaa(PhysicsObject pelaaja, double aste)
139    {
140        pelaaja.Angle += Angle.FromDegrees(aste);
141    }
142
143    void Kaasuta(PhysicsObject pelaaja, double kaasunMaara)
144    {
145        pelaaja.Push(pelaaja.Angle.GetVector() * kaasunMaara);
146    }
147
148
149    void LuoKivi(double x, double y)
150    {
151
152        PhysicsObject kivi = new PhysicsObject(100, 100);
153        kivi.Shape = Shape.Rectangle;
154        Add(kivi);
155        kivi.Image = kivenKuva;
156        kivi.X = x;
157        kivi.Y = y;
158
159   
160
161    }
162
163    PhysicsObject LuoAvaruusalus(double x, double y)
164    {
165        PhysicsObject avaruusalus = new PhysicsObject(40, 20);
166        avaruusalus.Image = avaruusaluskuva;
167        avaruusalus.Shape = Shape.Rectangle;
168        Add(avaruusalus);
169        avaruusalus.X = x;
170        avaruusalus.Y = y;
171        avaruusalus.Tag = "alus";
172        avaruusalus.AngularDamping = 0.1;
173
174        return avaruusalus;
175    }
176}
Note: See TracBrowser for help on using the repository browser.