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

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