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

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