source: 2012/24/MattiV/Space Battle/Space Battle/Space Battle/Space_Battle.cs @ 3006

Revision 3006, 5.0 KB checked in by matvirkk, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9class PeliHahmo : PhysicsObject
10{
11    public int Elamat = 3;
12    public IntMeter HP = new IntMeter(100);
13
14    public PeliHahmo(double leveys, double korkeus)
15        : base(leveys, korkeus)
16    {
17        HP.LowerLimit += new Meter<int>.OnLimitHandler(HP_LowerLimit);
18    }
19
20    void HP_LowerLimit(int value)
21    {
22        Explosion rajahdy = new Explosion( 100 );
23            rajahdy.Position = Position;
24            Add( rajahdy );
25
26    }
27}
28
29public class Space_Battle : PhysicsGame
30{
31    Image taustaKuva = LoadImage("space");
32    Image olionKuva = LoadImage("alus 1");
33    Image Kuva = LoadImage("alus2");
34    Image Astr = LoadImage("Ast");
35    PeliHahmo alus1;
36    PeliHahmo alus2;
37    double nopeusYlos = 200;
38    double nopeusAlas = -200;
39    double Pyoriminen = 7.0;
40    AssaultRifle pysy;
41    AssaultRifle pyssy;
42   
43    public override void Begin()
44    {
45        Alukset();
46        AsetaOhjaimet();
47        Level.Background.Image = taustaKuva;
48        Level.Height = 1000;
49        Level.Width = 1000;
50        Cannon tykki = new Cannon(50, 10);
51        Add(tykki);
52
53
54       
55        int i = 0;
56
57        while (i < 20)
58        {
59            PhysicsObject Asteroid = new PhysicsObject(30, 70);
60            Asteroid.Image = Astr;
61            Asteroid.Mass = 50;
62            Asteroid.Width = RandomGen.NextDouble(100, 200);
63            Asteroid.Position = RandomGen.NextVector(500, -500);
64            Add(Asteroid);
65            i++;
66           
67         
68        }
69
70
71            }
72    void AsetaOhjaimet()
73    {
74        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", alus1, nopeusYlos);
75        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", alus1, nopeusAlas);
76        Keyboard.Listen(Key.D, ButtonState.Down, Kaanto, "Pelaaja 1: Liikuta mailaa ", alus1, -Pyoriminen);
77        Keyboard.Listen(Key.D, ButtonState.Released, Kaanto, null, alus1, 0.0);
78        Keyboard.Listen(Key.A, ButtonState.Down, Kaanto, "Pelaaja 1: Liikuta mailaa alas", alus1, Pyoriminen);
79        Keyboard.Listen(Key.A, ButtonState.Released, Kaanto, null, alus1, 0.0);
80        Keyboard.Listen(Key.Q, ButtonState.Down, AmmuAseella, "Ammu");
81
82
83         
84        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", alus2, nopeusYlos);
85        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", alus2, nopeusAlas);
86        Keyboard.Listen(Key.Right, ButtonState.Down, Kaanto, "Pelaaja 2: Liikuta mailaa ylös", alus2, -Pyoriminen);
87        Keyboard.Listen(Key.Right, ButtonState.Released, Kaanto, null, alus2, 0.0);
88        Keyboard.Listen(Key.Left, ButtonState.Down, Kaanto, "Pelaaja 2: Liikuta mailaa alas", alus2, Pyoriminen);
89        Keyboard.Listen(Key.Left, ButtonState.Released, Kaanto, null, alus2, 0.0);
90        Keyboard.Listen(Key.K, ButtonState.Down, AmmuAseella2, "Ammu");
91       
92       
93        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
94        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
95    }
96    void AsetaNopeus(PhysicsObject alus, double nopeus)
97    {
98        alus.Push(Vector.FromLengthAndAngle(nopeus, alus.Angle));
99    }
100    void Kaanto(PhysicsObject alus, double Pyoriminen)
101    {
102        alus.AngularVelocity = Pyoriminen;
103
104    }
105    void Alukset()
106    {
107         alus1 = new PeliHahmo(35, 20);
108        alus1.X = -400;
109        alus1.Y = -300;
110        alus1.Restitution = 0;
111        alus1.Image = olionKuva;
112        pyssy = new AssaultRifle(1, 1);
113        pyssy.ProjectileCollision = AmmusOsui;
114        pyssy.Ammo.Value = 50000000;
115        alus1.Add(pyssy);
116        Add(alus1);
117
118         alus2 = new PeliHahmo(35, 20);
119        alus2.X = 400;
120        alus2.Y = 300;
121        alus2.Image = Kuva;
122        alus2.Restitution = 0.5;
123        pysy = new AssaultRifle(1, 1);
124        pysy.ProjectileCollision = AmmusOsui;
125        pysy.Ammo.Value = 500000000;
126        alus2.Add(pysy);
127        Add(alus2);
128
129
130        Level.CreateBorders(1.0, false);
131        Camera.ZoomToLevel();
132     }
133    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
134    {
135        ammus.Destroy();
136        Explosion rajahdys = new Explosion(0);
137        rajahdys.Position = ammus.Position;
138        Add(rajahdys);
139
140        PeliHahmo kohdeHahmo = kohde as PeliHahmo;
141        if (kohdeHahmo != null)
142        {
143            kohdeHahmo.HP.Value -= 10;
144        }
145    }
146    void AmmuAseella()
147    {
148        PhysicsObject ammus = pyssy.Shoot();
149
150        if (ammus != null)
151        {
152            ammus.Size *= 0.5;
153        }
154    }
155    void AmmuAseella2()
156    {
157        PhysicsObject ammus = pysy.Shoot();
158
159        if (ammus != null)
160        {
161            ammus.Size *= 0.5;
162        }
163    }
164
165
166
167    }
Note: See TracBrowser for help on using the repository browser.