source: 2013/26/MikkoTi/Tasohyppelypeli3/Tasohyppelypeli3/Tasohyppelypeli3/Tasohyppelypeli3.cs @ 4293

Revision 4293, 5.3 KB checked in by miktiili, 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 Tasohyppelypeli3 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    int kenttaNro = 1;
18
19    Image pelaajanKuva = LoadImage("Hahmo2");
20    Image tahtiKuva = LoadImage("AmmoBox");
21    Image maaliKuva = LoadImage("MaalinKuva");
22    Image esteenKuva = LoadImage("Este");
23    Image PinkBoxKuva = LoadImage("PinkBox");
24
25
26    public override void Begin()
27   
28    {
29        SeuraavaKentta();
30        Camera.Zoom(0.5);
31    }
32
33    void SeuraavaKentta()
34    {
35        ClearAll();
36
37        Gravity = new Vector(0, -1000);
38
39        if (kenttaNro == 1) LuoKentta("kentta1");
40        else if (kenttaNro == 2) LuoKentta("Kentta2");
41        else if (kenttaNro == 3) LuoKentta("Kentta3");
42        else if (kenttaNro == 4) LuoKentta("Kentta4");
43        else if (kenttaNro == 5) LuoKentta("Kentta5");
44        else if (kenttaNro == 6) LuoKentta("Kentta6");
45        else if (kenttaNro > 6) Exit();
46
47        LuoAikaLaskuri();
48        LisaaNappaimet();
49
50    }
51   
52    void LuoKentta(string kentta1)
53    {
54        TileMap kentta = TileMap.FromLevelAsset(kentta1);
55        kentta.SetTileMethod('#', LisaaTaso);
56        kentta.SetTileMethod('*', LisaaTahti);
57        kentta.SetTileMethod('N', LisaaPelaaja);
58        kentta.SetTileMethod('M', LisaaMaali);
59        kentta.SetTileMethod('P', LisaaPinkBox);
60        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
61        Level.CreateBorders(false);
62        Level.Background.CreateGradient(Color.Black, Color.Purple);
63    }
64
65    void LisaaTaso(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
68        taso.Position = paikka;
69        taso.Color = Color.Pink;
70        Add(taso);
71    }
72
73    void LisaaMaali(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        maali.IgnoresCollisionResponse = true;
77        maali.Position = paikka;
78        maali.Image = maaliKuva;
79        maali.Tag = "maali";
80        Add(maali);
81    }
82
83    void TormasiMaaliin(PhysicsObject hahmo, PhysicsObject Maali)
84    {
85        kenttaNro++;
86        SeuraavaKentta ();
87    }
88
89    void LisaaPinkBox(Vector paikka, double leveys, double korkeus)
90    {
91        PhysicsObject pinkbox = PhysicsObject.CreateStaticObject(leveys, korkeus);
92        pinkbox.IgnoresCollisionResponse = true;
93        pinkbox.Position = paikka;
94        pinkbox.Image = PinkBoxKuva;
95        pinkbox.Tag = "PinkBox";
96        Add(pinkbox);
97    }
98
99    void LisaaTahti(Vector paikka, double leveys, double korkeus)
100    {
101        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
102        tahti.IgnoresCollisionResponse = true;
103        tahti.Position = paikka;
104        tahti.Image = tahtiKuva;
105        tahti.Tag = "AmmoBox";
106        Add(tahti);
107    }
108
109    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
110    {
111        pelaaja1 = new PlatformCharacter(leveys, korkeus);
112        pelaaja1.Position = paikka;
113        pelaaja1.Mass = 3.9;
114        pelaaja1.Image = pelaajanKuva;
115        AddCollisionHandler(pelaaja1, "AmmoBox", TormaaTahteen);
116        AddCollisionHandler(pelaaja1, "maali", TormasiMaaliin);
117        Add(pelaaja1);
118    }
119
120    void LisaaNappaimet()
121    {
122        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
123        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
124       
125        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
126        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
127        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
128        Keyboard.Listen(Key.Enter, ButtonState.Pressed, Pause, "Pysäyttää pelin");
129
130        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
131
132        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
133        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
134        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
135
136        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
137    }
138
139    void LuoAikaLaskuri()
140    {
141        Timer aikaLaskuri = new Timer();
142        aikaLaskuri.Start();
143
144        Label aikaNaytto = new Label();
145        aikaNaytto.TextColor = Color.White;
146        aikaNaytto.DecimalPlaces = 1;
147        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
148        Add(aikaNaytto);
149    }
150   
151    void Liikuta(PlatformCharacter hahmo, double nopeus)
152    {
153        hahmo.Walk(nopeus);
154    }
155
156    void Hyppaa(PlatformCharacter hahmo, double nopeus)
157    {
158        hahmo.Jump(nopeus);
159    }
160
161    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
162    {
163        MessageDisplay.Add("Keräsit Boxin");
164        tahti.Destroy();
165    }
166}
Note: See TracBrowser for help on using the repository browser.