source: 2013/26/ArttuR/Pako/Pako/Pako/Pako.cs @ 4240

Revision 4240, 5.3 KB checked in by arosrinn, 7 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
9public class Pako : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    IntMeter kuolemaLaskuri = new IntMeter(0,0,9999999);
16
17    int kenttaNro = 1;
18
19    PlatformCharacter pelaaja1;
20    Vector aloitus;
21
22    Image pelaajanKuva = LoadImage("Pakopäähenkilö5");
23    Image morkoKuva = LoadImage("morko");
24    Image maaliKuva = LoadImage("maali2");
25
26    SoundEffect maaliAani = LoadSoundEffect("maali");
27
28    public override void Begin()
29    {
30       
31
32        //LuoKentta("kentta1");
33        SeuraavaKentta();
34       
35       
36    }
37
38    void LuoKentta(string kenttaTiedostonNimi)
39    {
40        TileMap kentta = TileMap.FromLevelAsset(kenttaTiedostonNimi);
41        kentta.SetTileMethod('#', LisaaTaso);
42        kentta.SetTileMethod('N', LisaaPelaaja);
43        kentta.SetTileMethod('K', LisaaMorko);
44        kentta.SetTileMethod('M', LisaaMaali);
45        kentta.SetTileMethod('L', LisaaLaava);
46        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
47        Level.CreateBorders();
48        Level.Background.CreateGradient(Color.Black, Color.Gray);
49        Gravity = new Vector(0, -1000);
50    }
51
52    void LisaaLaava(Vector paikka, double leveys, double korkeus)
53    {
54        PhysicsObject laava = PhysicsObject.CreateStaticObject(leveys, korkeus);
55        laava.Position = paikka;
56        laava.Color = Color.Red;
57        laava.Tag = "vihollinen";
58        Add(laava);
59    }
60
61    void LisaaMorko(Vector paikka, double leveys, double korkeus)
62    {
63        PlatformCharacter morko = new PlatformCharacter(leveys, korkeus);
64        morko.Position = paikka;
65        morko.Image = morkoKuva;
66        morko.Tag = "vihollinen";
67        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
68        tasoAivot.Speed = 100;
69
70        morko.Brain = tasoAivot;
71        Add(morko);
72    }
73
74    void TormattiinLaavaan(PhysicsObject pelaaja1, PhysicsObject maali)
75    {
76        pelaaja1.Position = aloitus;
77    }
78
79    void SeuraavaKentta()
80    {
81        ClearAll();
82
83        if (kenttaNro == 1) LuoKentta("kentta1");
84        else if (kenttaNro == 2) LuoKentta("kentta2");
85        else if (kenttaNro == 3) LuoKentta("kentta3");
86
87        LisaaNappaimet();
88
89        Label pisteNaytto = new Label();
90        pisteNaytto.X = Screen.Left + 100;
91        pisteNaytto.Y = Screen.Top - 100;
92        pisteNaytto.TextColor = Color.Black;
93        pisteNaytto.Color = Color.White;
94
95        pisteNaytto.BindTo(kuolemaLaskuri);
96        Add(pisteNaytto);
97
98        Camera.Follow(pelaaja1);
99        Camera.ZoomFactor = 1.2;
100        Camera.StayInLevel = true;
101    }
102
103    void LisaaTaso(Vector paikka, double leveys, double korkeus)
104    {
105        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
106        taso.Position = paikka;
107        taso.Color = Color.Gray;
108        Add(taso);
109    }
110
111
112   
113
114    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
115    {
116        pelaaja1 = new PlatformCharacter(leveys, korkeus);
117        pelaaja1.Position = paikka;
118        aloitus = paikka;
119        pelaaja1.Mass = 4;
120        pelaaja1.Image = pelaajanKuva;
121        AddCollisionHandler(pelaaja1, "maali", TormattiinMaaliin);
122        AddCollisionHandler(pelaaja1, "vihollinen", TormattiinViholliseen);
123        Add(pelaaja1);
124    }
125
126    void TormattiinViholliseen(PhysicsObject obj, PhysicsObject morko)
127    {
128        obj.Position = aloitus;
129        kuolemaLaskuri.Value++;
130    }
131
132
133    void TormattiinMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
134    {
135        kenttaNro++;
136        SeuraavaKentta();
137    }
138
139
140    void LisaaMaali(Vector paikka, double leveys, double korkeus)
141    {
142       
143        PhysicsObject maali = new PhysicsObject(leveys, korkeus*2);
144        maali.Tag = "maali";
145        maali.Image = maaliKuva;
146        maali.MakeStatic();
147        Add(maali);
148        maali.Position = paikka + new Vector(0, korkeus/2);
149    }
150
151
152    void LisaaNappaimet()
153    {
154        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
155        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
156
157        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
158        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
159        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
160
161        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
162
163        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
164        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
165        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
166
167        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
168    }
169
170    void Liikuta(PlatformCharacter hahmo, double nopeus)
171    {
172        hahmo.Walk(nopeus);
173    }
174
175    void Hyppaa(PlatformCharacter hahmo, double nopeus)
176    {
177        hahmo.Jump(nopeus);
178    }
179
180   
181   
182}
Note: See TracBrowser for help on using the repository browser.