source: 2016/27/OssiJ/Kuoppa/Kuoppa/Kuoppa/Kuoppa.cs @ 7964

Revision 7964, 4.8 KB checked in by ostajylh, 3 years ago (diff)

Pelin läpäisy ja lopetus

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Kuoppa : PhysicsGame
10{
11
12    const double nopeus = 200;
13    const double hyppyNopeus = 750;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17   
18    Image pelaajanKuva = LoadImage("Tyyppi2");
19    Image tahtiKuva = LoadImage("Kulta");
20    Image puuKuva = LoadImage("Puu");
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24    IntMeter pisteLaskuri;
25
26    public override void Begin()
27    {
28        Gravity = new Vector(0, -1000);
29
30        LuoPistelaskuri();
31        LuoKentta();
32        LisaaNappaimet();
33
34        Camera.Follow(pelaaja1);
35        Camera.ZoomFactor = 1.2;
36        Camera.StayInLevel = true;
37    }
38
39    void LuoKentta()
40    {
41        TileMap kentta = TileMap.FromLevelAsset("kentta1");
42        kentta.SetTileMethod('#', LisaaTaso);
43        kentta.SetTileMethod('*', LisaaTahti);
44        kentta.SetTileMethod('N', LisaaPelaaja);
45        kentta.SetTileMethod('P', LisaaPuu);
46        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
47        Level.CreateBorders();
48        Level.Background.Color = Color.Beige;
49    }
50
51    void LisaaTaso(Vector paikka, double leveys, double korkeus)
52    {
53        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
54        taso.Position = paikka;
55        taso.Color = Color.Brown;
56        Add(taso);
57    }
58
59    void LisaaTahti(Vector paikka, double leveys, double korkeus)
60    {
61        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        tahti.IgnoresCollisionResponse = true;
63        tahti.Position = paikka;
64        tahti.Image = tahtiKuva;
65        tahti.Tag = "tahti";
66        Add(tahti);
67        pisteLaskuri.MaxValue += 1;
68    }
69
70    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
71    {
72        pelaaja1 = new PlatformCharacter(leveys, korkeus);
73        pelaaja1.Position = paikka;
74        pelaaja1.Mass = 4.0;
75        pelaaja1.Image = pelaajanKuva;
76        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
77        AddCollisionHandler(pelaaja1, "puu", TormaaPuuhun);
78        Add(pelaaja1);
79    }
80
81    void LisaaPuu(Vector paikka, double leveys, double korkeus)
82    {
83        PhysicsObject puu = PhysicsObject.CreateStaticObject(leveys, korkeus);
84        puu.Position = paikka;
85        puu.Image = puuKuva;
86        puu.Tag = "puu";
87        Add(puu);
88    }
89
90    void LisaaNappaimet()
91    {
92        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
93        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
94
95        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
96        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
97        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
98
99        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
100
101        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
102        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
103        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
104    }
105
106    void Liikuta(PlatformCharacter hahmo, double nopeus)
107    {
108        hahmo.Walk(nopeus);
109    }
110
111    void Hyppaa(PlatformCharacter hahmo, double nopeus)
112    {
113        hahmo.Jump(nopeus);
114    }
115
116    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
117    {
118        maaliAani.Play();
119        MessageDisplay.Add("Keräsit kullan!");
120        tahti.Destroy();
121        pisteLaskuri.Value += 1;
122    }
123
124    void TormaaPuuhun(PhysicsObject hahmo, PhysicsObject puu)
125    {
126        if (pisteLaskuri.Value == pisteLaskuri.MaxValue)
127        {
128            ClearAll();
129            MultiSelectWindow alkuValikko = new MultiSelectWindow("Läpäisit pelin!", "Uusi peli", "Lopeta");
130            Add(alkuValikko);
131            alkuValikko.AddItemHandler(0, Begin);
132            alkuValikko.AddItemHandler(1, Exit);
133            Level.Background.Color = Color.Aqua;
134        }
135        else
136        {
137            MessageDisplay.Add("Kerää kaikki kullat");
138        }
139    }
140    void LuoPistelaskuri()
141    {
142        pisteLaskuri = new IntMeter(0,0,0) ;
143
144        Label pisteNaytto = new Label();
145        pisteNaytto.X = Screen.Right - 100;
146        pisteNaytto.Y = Screen.Top - 100;
147        pisteNaytto.TextColor = Color.Black;
148        pisteNaytto.Color = Color.White;
149
150        pisteNaytto.BindTo(pisteLaskuri);
151        Add(pisteNaytto);
152
153    }
154}
Note: See TracBrowser for help on using the repository browser.