source: 2010/30/nilaiton/Tasohyppely1/Peli.cs @ 1374

Revision 1374, 5.6 KB checked in by nilaiton, 11 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6
7class Tasohyppely : PhysicsGame
8{
9    const double nopeus = 200;
10    const double hyppyVoima = 4000;
11    int kenttaLaskuri = 1;
12    const int ruudunLeveys = 50;
13    const int ruudunKorkeus = 50;
14    PlatformCharacter pelaaja1;
15    PhysicsObject maali;
16
17    protected override void Begin()
18    {
19        Gravity = new Vector(0, -1000);
20        LuoMaali();
21        luoKentta1();
22        lisaaNappaimet();
23        AddCollisionHandler(pelaaja1, KasittelePallonTormays);
24
25        Camera.Follow(pelaaja1);
26        Camera.ZoomFactor = 2.0;
27        Camera.StayInLevel = true;
28    }
29
30    void luoKentta1()
31    {
32        Level.CreateBorders();
33        //Level.Background.CreateGradient(Color.White, Color.SkyBlue);
34        Level.Background.CreateStars();
35
36
37        lisaaTasoPaikkaan(100, 141);
38        lisaaTasoPaikkaan(-50, -250);
39        lisaaTasoPaikkaan(170, -325);
40        lisaaTasoPaikkaan(220, -170);
41        lisaaTasoPaikkaan(87, -50);
42        lisaaTasoPaikkaan(-100, 30);
43        lisaaTasoPaikkaan(300, 30);
44        lisaaTasoPaikkaan(-270, -186);
45        lisaaTasoPaikkaan(-415, -115);
46        lisaaTasoPaikkaan(-350, -350);
47
48
49        lisaaPelaajat();
50    }
51    void luoKentta2()
52    {
53        ClearAll();
54
55       
56        //Level.Background.CreateGradient(Color.White, Color.SkyBlue);
57        Level.Background.CreateStars();
58
59        TileMap ruudut = TileMap.FromFile("kentta2.txt");
60
61        ruudut['-'] = lisaaTaso;
62        ruudut['M'] = LuoMaaliTileMap;
63        ruudut['X'] = lisaaPelaajatTileMap;
64       
65        Gravity = new Vector(0, -1000);
66       
67        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
68
69
70
71       
72        Camera.Follow(pelaaja1);
73        Camera.ZoomFactor = 2.0;
74        Camera.StayInLevel = true;
75        lisaaNappaimet();
76    }
77     void luoKentta3()
78     {
79         ClearAll();
80
81
82         //Level.Background.CreateGradient(Color.White, Color.SkyBlue);
83         Level.Background.CreateStars();
84
85       
86
87         Gravity = new Vector(0, -1000);
88
89         lisaaTasoPaikkaan(100, 100);
90
91
92
93
94         Camera.Follow(pelaaja1);
95         Camera.ZoomFactor = 2.0;
96         Camera.StayInLevel = true;
97         lisaaNappaimet();
98     }
99
100     void luoKentta4()
101     {
102         
103     }
104
105     void luoKentta5()
106     {
107     }
108
109     void lisaaTasoPaikkaan(double x, double y)
110    {
111        PhysicsObject taso = PhysicsObject.CreateStaticObject(200, 18);
112        taso.Color = Color.White;
113        taso.X = x;
114        taso.Y = y;
115        Add(taso);
116    }
117
118     PhysicsObject lisaaTaso()
119     {
120         PhysicsObject taso = PhysicsObject.CreateStaticObject(200, 18);
121         taso.Color = Color.White;
122
123         return taso;
124     }
125
126
127   
128
129    void lisaaPelaajat()
130    {
131        pelaaja1 = new PlatformCharacter(40, 40);
132        pelaaja1.Mass = 4.0;
133        pelaaja1.Image = LoadImage("tahti");
134        pelaaja1.X = 0;
135        pelaaja1.Y = Level.Bottom + 100;
136
137        Add(pelaaja1);
138    }
139
140    void vaihdaKentta(int kenttaLaskuri)
141    {
142        if (kenttaLaskuri==1)
143        {
144            luoKentta1();
145        }
146        if (kenttaLaskuri==2)
147        {
148            luoKentta2();
149        }
150        if (kenttaLaskuri == 3)
151        {
152            luoKentta3();
153        }
154
155    }
156
157    void lisaaNappaimet()
158    {
159        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
160        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
161
162        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
163        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
164        Keyboard.Listen(Key.Space, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
165
166        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
167
168        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
169        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
170        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
171    }
172
173    void liikuta(PlatformCharacter hahmo, double nopeus)
174    {
175        hahmo.Walk(nopeus);
176    }
177
178    void hyppaa(PlatformCharacter hahmo, double voima)
179    {
180        hahmo.Jump(voima);
181    }
182    void KasittelePallonTormays(PhysicsObject pelaaja1, PhysicsObject kohde)
183    {
184        if (kohde.Tag.ToString() == "maali1")
185        {
186            kenttaLaskuri++;
187            vaihdaKentta(kenttaLaskuri);
188        }
189    }
190    void LuoMaali()
191    {
192        maali = PhysicsObject.CreateStaticObject(75.0, 120.0);
193        maali.X = 150.0;
194        maali.Y = 200.0;
195        maali.Shape = Shapes.Rectangle;
196        maali.Color = Color.Yellow;
197        maali.Tag = "maali1";
198        Add(maali);
199
200    }
201    PhysicsObject lisaaPelaajatTileMap()
202    {
203        pelaaja1 = new PlatformCharacter(40, 40);
204        pelaaja1.Mass = 4.0;
205        pelaaja1.Image = LoadImage("tahti");
206        pelaaja1.X = 0;
207        pelaaja1.Y = Level.Bottom + 100;
208
209        return pelaaja1;
210    }
211    PhysicsObject LuoMaaliTileMap()
212    {
213        maali = PhysicsObject.CreateStaticObject(75.0, 120.0);
214        maali.X = 150.0;
215        maali.Y = 200.0;
216        maali.Shape = Shapes.Rectangle;
217        maali.Color = Color.Yellow;
218        maali.Tag = "maali1";
219        return maali;
220    }
221}
222
Note: See TracBrowser for help on using the repository browser.