source: 2010/27/frjolehm/The King of the island/The King of the island/Peli.cs @ 1146

Revision 1146, 6.3 KB checked in by frjolehm, 11 years ago (diff)

Laitoin peliin elämät ja tein ensimmäisen pikkupelin valmiiksi.

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects; 
4using Jypeli.Widgets;
5using Jypeli.Assets;
6
7public class Peli : PhysicsGame
8{
9 
10    PlatformCharacter pelaaja1;
11    PlatformCharacter pelaaja2;
12
13    PhysicsObject vasenreuna;
14    PhysicsObject oikeareuna;
15    PhysicsObject alareuna;
16    PhysicsObject yläreuna;
17
18    const int Joukkueenkoko = 3;
19    int Pelaajan1joukkue = Joukkueenkoko;
20    int Pelaajan2joukkue = Joukkueenkoko;
21
22    Boolean Pelaajan1JuoksuAskel;
23    Boolean Pelaajan2JuoksuAskel;
24    const double Juoksunopeus = 100;//20
25    const double Juoksunkiihtyvyys = 2.5;
26    double Pelaajan1Juoksunopeus = Juoksunopeus;
27    double Pelaajan2Juoksunopeus = Juoksunopeus;
28
29    protected override void Begin()
30    {
31        Aloitapikkupeli(1);
32    }
33
34    void Aloitapikkupeli(int peliMuoto)
35    {
36        //Kuoleman juoksu
37        if (peliMuoto == 1)
38        {
39            LuoKenttä(800,700);   
40            Camera.ZoomToLevel();
41            LuoElämät();
42            AddCollisionHandler(oikeareuna, JuoksuVoitto);
43            pelaaja1 = LuoUkko(Level.Left + 30,Level.Bottom + 75,85, 75,"Tipu1");
44            pelaaja2 = LuoUkko(Level.Left+ 30,Level.Bottom + 200,85, 75,"Tipu2");
45            JuoksuOhjaimet();
46        }
47        else if (peliMuoto == 2)
48        {
49            LuoKenttä(3000, 1000);
50            LuoTausta(3000, Level.Bottom);
51            pelaaja1 = LuoUkko(Level.Left + 30, Level.Bottom + 75, 85, 75, "Tipu1");
52            Gravity = new Vector(0, -1000);
53
54            Camera.Follow(pelaaja1);
55            LuoElämät();
56            JuoksuOhjaimet();
57        }
58
59    }
60
61    void LuoTausta(int w, double y)
62    {
63        for (int x = 1; x < w; x += 100) 
64        {
65            LuoTaustaEsineitä(x, y, 50, 50, "Aita");
66        }
67    }
68    void LuoTaustaEsineitä(double x, double y, double w, double h, string nimi)
69    {
70        PhysicsObject ukko = new PhysicsObject(w,h,Shapes.Rectangle);
71        ukko.Image = LoadImage(nimi);
72        ukko.X = x;
73        ukko.Y = y;
74        Add(ukko);
75    }
76
77    void LuoKenttä(double width, double height)
78    {
79        Level.Width = width;
80        Level.Height = height;
81
82        vasenreuna = Level.CreateLeftBorder();
83        vasenreuna.IsVisible = false;
84
85        oikeareuna = Level.CreateRightBorder();
86        oikeareuna.IsVisible = false;
87
88        yläreuna = Level.CreateTopBorder(); 
89        yläreuna.IsVisible = false;
90
91        alareuna = Level.CreateBottomBorder();
92        alareuna.Color = Color.Green;
93        alareuna.IsVisible = true;
94
95    }
96
97    void JuoksuOhjaimet() 
98    {
99        Keyboard.Listen(Key.A, ButtonState.Pressed, LuoJuoksu, "Pelaaja liikkuu", pelaaja1, false, false);
100        Keyboard.Listen(Key.D, ButtonState.Pressed, LuoJuoksu, "Pelaaja liikkuu", pelaaja1, false, true);
101
102        Keyboard.Listen(Key.Left, ButtonState.Pressed, LuoJuoksu, "Pelaaja2 liikkuu", pelaaja2, true, false);
103        Keyboard.Listen(Key.Right, ButtonState.Pressed, LuoJuoksu, "Pelaaja2 liikkuu", pelaaja2, true, true);
104    }
105
106    //                   ukko          false = p1 true = p2    false = n1 true = n2
107    void LuoJuoksu(PlatformCharacter ukko, Boolean pelaaja, Boolean näppäin)
108    {
109        //Pelaaja 1
110        if (pelaaja == false)
111        {
112            if (näppäin == Pelaajan1JuoksuAskel)
113            {
114                Pelaajan1Juoksunopeus += Juoksunkiihtyvyys;
115                Liikuta(ukko,Pelaajan1Juoksunopeus);
116                if (Pelaajan1JuoksuAskel == true)
117                {
118                    Pelaajan1JuoksuAskel = false;
119                }
120                else
121                {
122                    Pelaajan1JuoksuAskel = true;
123                }
124
125            }
126            if (Pelaajan1Juoksunopeus >= Juoksunopeus)
127            {
128                Pelaajan1Juoksunopeus -= 1;
129            }
130        }
131        else
132        {
133            if (näppäin == Pelaajan2JuoksuAskel)
134            {
135                Pelaajan2Juoksunopeus += Juoksunkiihtyvyys;
136                Liikuta(ukko, Pelaajan2Juoksunopeus);
137                if (Pelaajan2JuoksuAskel == true)
138                {
139                    Pelaajan2JuoksuAskel = false;
140                }
141                else
142                {
143                    Pelaajan2JuoksuAskel = true;
144                }
145            }
146            if (Pelaajan2Juoksunopeus >= Juoksunopeus)
147            {
148                Pelaajan2Juoksunopeus -= 1;
149            }
150        }
151    }
152
153    void JuoksuVoitto(PhysicsObject maali, PhysicsObject kohde) 
154    { 
155        if(kohde == pelaaja1)
156        {
157            ClearAll();
158            Pelaajan2joukkue--;
159            Aloitapikkupeli(2);   
160        }
161        else if (kohde == pelaaja2) 
162        {
163            ClearAll();
164            Pelaajan2joukkue--; 
165            Aloitapikkupeli(2);
166        }
167    }
168
169    void LuoElämät() 
170    {
171        for(int i = 1; i < Joukkueenkoko+1; i++)
172        {
173            if (i <= Pelaajan1joukkue)
174            {
175                LuoUkkokuva(Screen.Left + i * 50, Screen.Top - 25, 40, 35, "Tipu1");
176            }
177            else 
178            {
179                LuoUkkokuva(Screen.Left + i * 50, Screen.Top - 25, 40, 35, "Kuollut1");
180            }
181            if (i <= Pelaajan2joukkue)
182            {
183                LuoUkkokuva(Screen.Right - i * 50, Screen.Top - 25, 40, 35, "Tipu2");
184            }
185            else
186            {
187                LuoUkkokuva(Screen.Right - i * 50, Screen.Top - 25, 40, 35, "Kuollut2");
188            }
189        }
190    }
191
192    void LuoUkkokuva(double x, double y, double w, double h, string nimi)
193    {
194        ImageDisplay ukko = new ImageDisplay();
195        ukko.Image = LoadImage(nimi);
196        ukko.AutoSize = false;
197        ukko.Width = w;
198        ukko.Height = h;
199        ukko.X = x;
200        ukko.Y = y;
201        Add(ukko);
202
203    }
204
205    void Liikuta(PlatformCharacter ukko, double nopeus)
206    {
207        ukko.Walk(nopeus);
208    }
209
210    PlatformCharacter LuoUkko(double x, double y, double kokoX, double kokoY, string nimi)
211    {
212        PlatformCharacter ukko = new PlatformCharacter(kokoX, kokoY, Shapes.Circle);
213        ukko.Mass = 4.0;
214        ukko.X = x;
215        ukko.Y = y;
216        ukko.Image = LoadImage(nimi);
217        Add(ukko);
218        return ukko;
219    }
220}
Note: See TracBrowser for help on using the repository browser.