source: 2012/10-20/EemilL/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 3936

Revision 3872, 6.1 KB checked in by jypeleht, 9 years ago (diff)

versio 20.10.2012

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 500;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 400;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("Tikku-ukko");
18    Image tahtiKuva = LoadImage("tahti");
19    Image kerrostaloKuva = LoadImage("kerrostalo");
20    Image tieKuva = LoadImage("tie");
21    Image Este1Kuva = LoadImage("Este1");
22    Image Este2Kuva = LoadImage("Este2");
23    Image Este3Kuva = LoadImage("Este3");
24
25    SoundEffect maaliAani = LoadSoundEffect("maali");
26
27    public override void Begin()
28    {
29        LuoKentta();
30        LisaaNappaimet();
31       
32        Gravity = new Vector(0, -1000);
33
34        Camera.X = Level.Left;
35        Camera.ZoomFactor = Screen.Height / Level.Height * 0.95;
36
37        //Camera.Zoom(1.0);
38
39        //Camera.ZoomToLevel();
40        //Camera.Follow(pelaaja1);
41        //Camera.ZoomFactor = 3.0;
42       
43        //Camera.StayInLevel = true;
44    }
45
46    void LuoKentta()
47    {
48        TileMap kentta = TileMap.FromLevelAsset("kentta1");
49        kentta.SetTileMethod('#', Lisaakerrostalo);
50        kentta.SetTileMethod('?', Lisaatie);
51        kentta.SetTileMethod('1', LisaaEste1);
52        kentta.SetTileMethod('2', LisaaEste2);
53        kentta.SetTileMethod('3', LisaaEste3);
54        kentta.SetTileMethod('4', LisaaEste4);
55        kentta.SetTileMethod('5', LisaaEste5);
56        kentta.SetTileMethod('*', LisaaTahti);
57        kentta.SetTileMethod('N', LisaaPelaaja);
58        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
59        Level.Background.CreateGradient(Color.White, Color.Red);
60    }
61
62    void Lisaakerrostalo(Vector paikka, double leveys, double korkeus)
63    {
64        PhysicsObject kerrostalo = PhysicsObject.CreateStaticObject(leveys, korkeus);
65        kerrostalo.Position = paikka;
66        kerrostalo.Image = kerrostaloKuva;
67        Add(kerrostalo);
68    }
69    void Lisaatie(Vector paikka, double leveys, double korkeus)
70    {
71        PhysicsObject tie = PhysicsObject.CreateStaticObject(leveys, korkeus);
72        tie.Position = paikka;
73        tie.Image = tieKuva;
74        tie.IgnoresCollisionResponse = true;
75        Add(tie, 1);
76        PhysicsObject kavelytaso = PhysicsObject.CreateStaticObject(leveys, korkeus - 100);
77        kavelytaso.Position = paikka;
78        Add(kavelytaso);
79    }
80
81    void LisaaEste1(Vector paikka, double leveys, double korkeus)
82    {
83        PhysicsObject Este1 = PhysicsObject.CreateStaticObject(150, 150);
84        Este1.Position = paikka;
85        Este1.Bottom = paikka.Y - korkeus / 2 - 50;
86        Este1.Image = Este1Kuva;
87        Add(Este1, 3);
88    }
89
90    void LisaaEste2(Vector paikka, double leveys, double korkeus)
91    {
92        PhysicsObject Este2 = PhysicsObject.CreateStaticObject(200, 200);
93        Este2.Position = paikka;
94        Este2.Bottom = paikka.Y - korkeus / 2 - 50;
95        Este2.Image = Este2Kuva;
96        Add(Este2, 3);
97    }
98
99    void LisaaEste3(Vector paikka, double leveys, double korkeus)
100    {
101        PhysicsObject Este3 = PhysicsObject.CreateStaticObject(270, 270);
102        Este3.Position = paikka;
103        Este3.Bottom = paikka.Y - korkeus / 2 - 50;
104        Este3.Image = Este3Kuva;
105        Add(Este3, 3);
106    }
107
108    void LisaaEste4(Vector paikka, double leveys, double korkeus)
109    {
110        PhysicsObject Este4 = PhysicsObject.CreateStaticObject(200, 200);
111        Este4.Position = paikka;
112        Este4.Bottom = paikka.Y - korkeus / 2 - 50;
113        Add(Este4, 3);
114    }
115
116    void LisaaEste5(Vector paikka, double leveys, double korkeus)
117    {
118        PhysicsObject Este5 = PhysicsObject.CreateStaticObject(200, 200);
119        Este5.Position = paikka;
120        Este5.Bottom = paikka.Y - korkeus / 2 - 50;
121        Add(Este5, 3);
122    }
123
124    void LisaaTahti(Vector paikka, double leveys, double korkeus)
125    {
126        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
127        tahti.IgnoresCollisionResponse = true;
128        tahti.Position = paikka;
129        tahti.Image = tahtiKuva;
130        tahti.Tag = "tahti";
131        Add(tahti);
132    }
133
134    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
135    {
136        pelaaja1 = new PlatformCharacter(40, 80);
137        pelaaja1.Position = paikka;
138        pelaaja1.Mass = 4.0;
139        pelaaja1.Image = pelaajanKuva;
140        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
141        Add(pelaaja1, 2);
142    }
143
144
145    void LisaaNappaimet()
146    {
147        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
148        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
149
150        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
151        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
152        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
153
154        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
155
156        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
157        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
158        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
159
160        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
161    }
162
163    void Liikuta(PlatformCharacter hahmo, double nopeus)
164    {
165        hahmo.Walk(nopeus);
166    }
167
168    void Hyppaa(PlatformCharacter hahmo, double nopeus)
169    {
170        hahmo.Jump(nopeus);
171    }
172
173    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
174    {
175        maaliAani.Play();
176        MessageDisplay.Add("Keräsit tähden!");
177        tahti.Destroy();
178    }
179    protected override void Update(Time GameTime)
180    {
181        Camera.Position.X += GameTime.SinceLastUpdate.Ticks * 0.00004;
182        base.Update(GameTime);
183
184    }
185}
Note: See TracBrowser for help on using the repository browser.