source: 2010/27/oteehann/tank wars/Peli.cs @ 1197

Revision 1197, 5.0 KB checked in by oteehann, 10 years ago (diff)

tein kaksinpelin.

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6public class Peli : PhysicsGame
7{
8    Tank tankki;
9    Tank tankki2;
10   
11    protected override void Begin()
12    {
13        Image tekstuuri = LoadImage("maantausta");
14        int maastonVaihtelu = 20;
15        Level.CreateGround(20,60,17, Color.Black, tekstuuri, maastonVaihtelu);
16        Gravity = new Vector(0.0, -500.0);
17       
18       
19        Level.CreateBorders();
20
21        LuoTankki();
22        LuoTankki2();
23        LisaaNappaimet();
24    }
25
26    void LuoTankki()
27    {
28        tankki = new Tank(40, 20);
29       
30        tankki.Position = new Vector(0, Level.Bottom + 70);
31        tankki.Mass = 100.0;
32       
33       //Image piipunkuva = LoadImage("piippu"); // <-- Tee piippu.png -kuva ja lisää Contentiin
34        //tankki.Cannon.Image = piipunkuva;
35        tankki.Cannon.CannonBallCollision = AmmusOsuu;
36        Add(tankki);
37        tankki.Image = LoadImage("tankki");
38       
39       
40    }
41
42    void LuoTankki2()
43    {
44        tankki2 = new Tank(40.0, 20.0);
45        tankki2.Position = new Vector(70, Level.Bottom + 70);
46        tankki2.Mass = 100.0;
47        tankki2.Image = LoadImage("tankki2");
48        tankki2.Cannon.CannonBallCollision = AmmusOsuu;
49        Add(tankki2);
50       
51    }
52    IntMeter pisteLaskuri;
53
54    void LuoLaskuri()
55    {
56        pisteLaskuri = new IntMeter(0);
57
58        Label pisteNaytto = new Label();
59        pisteNaytto.X = Screen.Left + 100;
60        pisteNaytto.Y = Screen.Top - 100;
61        pisteNaytto.TextColor = Color.Red;
62        pisteNaytto.BindTo(pisteLaskuri);
63        Add(pisteNaytto);
64        pisteNaytto.BindTo(pisteLaskuri);
65        Add(pisteNaytto);
66
67        Label pisteTeksti = new Label("Pisteitä: ");
68        pisteTeksti.X = Screen.Left + 50;
69        pisteTeksti.Y = Screen.Top - 100;
70        pisteTeksti.TextColor = Color.Red;
71        Add(pisteTeksti);
72
73        pisteLaskuri.Value++;
74        pisteLaskuri.Value += 1;
75        pisteLaskuri.Value = pisteLaskuri.Value + 1;
76       
77        IntMeter laskuri = new IntMeter(0);
78        laskuri.MaxValue = 10;
79        laskuri.UpperLimit += laskuriYlarajassa;
80    }
81
82    void laskuriYlarajassa(int arvo)
83    {
84        MessageDisplay.TextColor = Color.White;
85        MessageDisplay.Add("Pelaaja 1 voitti pelin.");
86        MessageDisplay.TextColor = Color.White;
87        MessageDisplay.Add("Pelaaja 2 voitti pelin.");
88
89       
90    }
91
92
93
94
95
96   
97   
98
99
100    void LisaaNappaimet()
101    {
102        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", 1.0, tankki);
103        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", -1.0, tankki);
104        Keyboard.Listen(Key.Up, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia ylos", tankki, Angle.Radians(1.0));
105        Keyboard.Listen(Key.Down, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia alas", tankki, Angle.Radians(-1.0));
106        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "Ammu aseella.", tankki);
107
108        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", 1.0, tankki2);
109        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", -1.0, tankki2);
110        Keyboard.Listen(Key.W, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia ylos", tankki2, Angle.Radians(1.0));
111        Keyboard.Listen(Key.S, ButtonState.Pressed, MuutaTykinKulmaa, "liikuta tykkia alas", tankki2, Angle.Radians(-1.0));
112        Keyboard.Listen(Key.Space, ButtonState.Pressed, Ammu, "Ammu aseella.", tankki2);
113    }
114   
115     
116   
117   
118   
119
120    void MuutaTykinKulmaa(Tank tank, Angle kulma)
121    {
122        if (tank == tankki)
123            tankki.Cannon.Angle += kulma;
124        if (tank == tankki2)
125            tankki2.Cannon.Angle += kulma;
126    }
127
128    void Liikuta(double suunta, Tank tank)
129    {  if (tank==tankki)
130          tankki.Accelerate(suunta);
131       if (tank==tankki2)
132          tankki2.Accelerate(suunta);
133    }
134
135    void Ammu(Tank tank)
136    {if (tank==tankki)
137        tankki.Shoot(10000);
138     if (tank==tankki2)
139        tankki2.Shoot(10000);
140    }
141
142    void AmmusOsuu(PhysicsObject ammus, PhysicsObject kohde)
143    {
144
145        Explosion rajahdys = new Explosion(100);
146        rajahdys.Position = ammus.Position;
147        rajahdys.Speed = 700.0;
148        rajahdys.Force = 1000.0;
149        rajahdys.ShockwaveColor = Color.OrangeRed;
150        Add(rajahdys);
151        ammus.Destroy();
152        //AddCollisionHandler(ammus, KasitteleammuksenTormays,tormayksestatuleePiste);
153    }
154    void Ammus2Osuu(PhysicsObject ammus2, PhysicsObject kohde)
155    {
156        Explosion rajahdys2 = new Explosion(100);
157        rajahdys2.Position = ammus2.Position;
158        rajahdys2.Speed = 700.0;
159        rajahdys2.Force = 1000.0;
160        rajahdys2.ShockwaveColor = Color.OrangeRed;
161        Add(rajahdys2);
162        ammus2.Destroy();
163        //AddCollisionHandler(ammus2, KasitteleammuksenTormays,tormayksestatuleePiste);
164    }
165
166
167}
Note: See TracBrowser for help on using the repository browser.