source: 2014/26/OttoW/Sticman The Last Stand/Sticman The Last Stand/Sticman The Last Stand/Sticman_The_Last_Stand.cs @ 5067

Revision 5067, 4.9 KB checked in by otweijo, 7 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Sticman_The_Last_Stand : PhysicsGame
10{
11    Pelaaja[] Pelaajat = new Pelaaja[2];
12    enum Pelimuoto { Yksinpeli, Moninpeli, Survival }
13
14    ColorTileMap ruudut;
15    int pelaajaLKM = 0;
16
17    public override void Begin()
18    {
19        LuoAlkuvalikko();
20    }
21
22    void AloitaPeli(Pelimuoto muoto)
23    {
24        LuoKentta();
25        if (muoto == Pelimuoto.Yksinpeli)
26        {
27            //LuoPelaaja(new Vector(Level.Left + 100, Level.Bottom + 100), 1);
28            pelaajaLKM = 1;
29            ruudut = ColorTileMap.FromLevelAsset("LAYOUT");
30            ruudut.SetTileMethod(Color.Black, LuoSeina);
31            ruudut.SetTileMethod(Color.Azure, LuoTaso);
32            ruudut.SetTileMethod(Color.Red, LuoPelaaja);
33            //ruudut.SetTileMethod(Color.BrightGreen, LuoPelaaja);
34
35            ruudut.Execute();
36            LuoVihollinen(new Vector(Level.Right - 100, Level.Bottom + 100));
37        }
38
39        if (muoto == Pelimuoto.Moninpeli)
40        {
41            pelaajaLKM = 2;
42            //LuoPelaaja(new Vector(Level.Left + 100, Level.Bottom + 100), 1);
43            //LuoPelaaja(new Vector(Level.Right - 100, Level.Bottom + 100), 2);
44        }
45        if (muoto == Pelimuoto.Survival)
46        {
47            pelaajaLKM = 2;
48            //LuoPelaaja(new Vector(Level.Left + 100, Level.Bottom + 100), 1);
49            //LuoPelaaja(new Vector(Level.Right - 100, Level.Bottom + 100), 2);
50        }
51 
52        LuoOhjaimet(muoto);
53        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
54        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
55    }
56
57    void LuoKentta()
58    {
59        Gravity = new Vector(0.0, -800.0);
60       Level.Size = new Vector(Screen.Width, Screen.Height);
61      /*  PhysicsObject alaReuna = Level.CreateBottomBorder();
62        alaReuna.Tag = "lattia";
63
64
65        PhysicsObject vasenReuna = Level.CreateLeftBorder();
66        vasenReuna.IsVisible = false;
67        PhysicsObject oikeareuna = Level.CreateRightBorder();
68        oikeareuna.IsVisible = false;
69        */
70       
71    }
72    void LuoSeina(Vector paikka, double leveys, double korkeus)
73    {
74        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus);
75        seina.Position = paikka;
76        seina.IsVisible = false;
77        Add(seina);
78    }
79    void LuoTaso(Vector paikka, double leveys, double korkeus)
80    {
81        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
82        taso.Position = paikka;
83        taso.Color = Color.Black;
84        Add(taso);
85    }
86
87    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
88    {
89        int numero = pelaajaLKM;
90        Pelaaja p = new Pelaaja(leveys, korkeus, 100);
91        p.Position = paikka;
92        Add(p);
93        Pelaajat[numero - 1] = p;
94        AddCollisionHandler<PhysicsObject, PhysicsObject>(p, "lattia", delegate { p.IsOnGround = true; });
95        AddCollisionHandler<Pelaaja, Vihollinen>(p, delegate(Pelaaja pelaaja, Vihollinen v) { v.Elamat.Value -= 10; });
96    }
97
98    void LuoVihollinen(Vector paikka)
99    {
100        Vihollinen vihu = new Vihollinen(100, 100, 100);
101        vihu.Position = paikka;
102        Add(vihu);
103    }
104
105    void LuoOhjaimet(Pelimuoto muoto)
106    {
107        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja 1 hyppää", Pelaajat[0]);
108        Keyboard.Listen(Key.A, ButtonState.Down, Liiku, "Pelaaja 1 liikkuu vasen", Pelaajat[0], new Vector(-500.0, 0.0));
109        Keyboard.Listen(Key.D, ButtonState.Down, Liiku, "Pelaaja 1 liikkuu oikea", Pelaajat[0], new Vector(500.0, 0.0));
110
111        if (muoto == Pelimuoto.Moninpeli || muoto == Pelimuoto.Survival)
112        {
113            Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja 2 hyppää", Pelaajat[1]);
114            Keyboard.Listen(Key.Left, ButtonState.Down, Liiku, "Pelaaja 2 liikkuu vasen", Pelaajat[1], new Vector(-500.0, 0.0));
115            Keyboard.Listen(Key.Right, ButtonState.Down, Liiku, "Pelaaja 2 liikkuu oikea", Pelaajat[1], new Vector(500.0, 0.0));
116        }
117    }
118
119    void Hyppaa(Pelaaja pelaaja)
120    {
121        if (pelaaja.IsOnGround)
122        {
123            pelaaja.Hit(new Vector(0.0, 500.0));
124            pelaaja.IsOnGround = false;
125        }
126
127    }
128
129    void Liiku(Pelaaja pelaaja, Vector suunta)
130    {
131        pelaaja.Push(suunta);
132    }
133    void LuoAlkuvalikko()
134    {
135        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
136        "Yksinpeli", "Moninpeli", "Survival", "Lopeta");
137        Add(alkuValikko);
138        alkuValikko.AddItemHandler(0, delegate { AloitaPeli(Pelimuoto.Yksinpeli); });
139        alkuValikko.AddItemHandler(1, delegate { AloitaPeli(Pelimuoto.Moninpeli); });
140        alkuValikko.AddItemHandler(2, delegate { AloitaPeli(Pelimuoto.Survival); });
141    }
142}
Note: See TracBrowser for help on using the repository browser.