source: 2015/24/OlaviL/Tasohyppelypeli5/Tasohyppelypeli5/Tasohyppelypeli5/Tasohyppelypeli5.cs @ 5954

Revision 5954, 5.4 KB checked in by sieerinn, 4 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Tasohyppelypeli5 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    Image olionKuva = LoadImage("gem");
16
17    int pMaxMaara = 200;
18
19    PlatformCharacter timantti;
20
21   
22
23
24
25
26    DoubleMeter pistePalkki;
27
28    Image pelaajanKuva = LoadImage("Diamond-02-copy");
29    Image tahtiKuva = LoadImage("Diamond-02-copy");
30
31    SoundEffect maaliAani = LoadSoundEffect("maali");
32    public override void Begin()
33    {
34        Gravity = new Vector(0, -1000);
35
36        LuoKentta();
37        LisaaNappaimet();
38        LuoPistelaskuri();
39        LuoAikaLaskuri(400.0, 400.0);
40
41
42        IsFullScreen = true;
43
44
45        Camera.Follow(timantti);
46        Camera.ZoomFactor = 1.2;
47        Camera.StayInLevel = true;
48    }
49
50    void LuoKentta()
51    {
52        TileMap kentta = TileMap.FromLevelAsset("kentta1");
53        kentta.SetTileMethod('#', LisaaTaso);
54        kentta.SetTileMethod('*', LisaaTahti);
55        kentta.SetTileMethod('T', LisaaPelaaja);
56        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
57        Level.CreateBorders();
58        Level.Background.CreateStars(10000);
59       
60   
61   
62    }
63
64    void LisaaTaso(Vector paikka, double leveys, double korkeus)
65    {
66        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus); // Nämä ovat ruutuja, joiden päällä hyppiä.
67        taso.Position = paikka;
68        taso.Color = Color.Green;
69        Add(taso);
70    }
71   
72    void LisaaTahti(Vector paikka, double leveys, double korkeus)
73    {
74        PhysicsObject kolikko = PhysicsObject.CreateStaticObject(leveys, korkeus);
75        kolikko.IgnoresCollisionResponse = true;
76        kolikko.Position = paikka;
77        kolikko.Image = tahtiKuva;
78        kolikko.Tag = "tahti";
79        Add(kolikko);
80    }
81
82    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
83    {
84        timantti = new PlatformCharacter(leveys, korkeus);
85        timantti.Position = paikka;
86        timantti.Mass = 4.0;
87        timantti.Image = pelaajanKuva;
88        AddCollisionHandler(timantti, "tahti", TormaaTahteen);
89        Add(timantti);
90    }
91
92    void LisaaNappaimet()
93    {
94        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
95        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
96        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
97
98        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", timantti, -nopeus);
99        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", timantti, nopeus);
100        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", timantti, hyppyNopeus);
101
102        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
103
104        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", timantti, -nopeus);
105        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", timantti, nopeus);
106        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", timantti, hyppyNopeus);
107
108        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
109    }
110
111    void Liikuta(PlatformCharacter hahmo, double nopeus)
112    {
113        hahmo.Walk(nopeus);
114    }
115
116    void Hyppaa(PlatformCharacter hahmo, double nopeus)
117    {
118        hahmo.ForceJump(nopeus);
119    }
120
121    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject kolikko)
122    {
123        maaliAani.Play();
124        kolikko.Destroy();
125        pisteLaskuri.Value += 1;
126
127    }
128
129
130    IntMeter pisteLaskuri;
131
132    void LuoPistelaskuri()
133    {
134        pisteLaskuri = new IntMeter(0);
135
136        Label pisteNaytto = new Label();
137        pisteNaytto.X = Screen.Left + 400;
138        pisteNaytto.Y = Screen.Top - 100;
139        pisteNaytto.TextColor = Color.Black;
140        pisteNaytto.Color = Color.White;
141        pisteNaytto.Title = "Kolikot";
142
143
144        IntMeter keratytEsineet = new IntMeter(0);
145        pisteLaskuri.MaxValue = 51;
146        pisteLaskuri.UpperLimit += KaikkiKeratty;
147
148        pisteNaytto.BindTo(pisteLaskuri);
149        Add(pisteNaytto);
150
151        ProgressBar pistePalkki = new ProgressBar(150, 20);
152        pistePalkki.X = Screen.Left + 150;
153        pistePalkki.Y = Screen.Top - 20;
154        pistePalkki.BindTo(pisteLaskuri);
155        pistePalkki.BarColor = Color.Gold;
156        pistePalkki.Angle = Angle.RightAngle;
157        pistePalkki.Color = Color.HanPurple;
158        Add(pistePalkki);
159
160
161
162
163
164    }
165
166
167    void KaikkiKeratty()
168    {
169        MessageDisplay.Add("Pelaaja voitti pelin.");
170    }
171   
172    void LuoAikaLaskuri(double x, double y)
173    {
174        Timer aikaLaskuri = new Timer();
175        aikaLaskuri.Start();
176
177        Label aikaNaytto = new Label();
178        aikaNaytto.TextColor = Color.White;
179        aikaNaytto.DecimalPlaces = 1;
180        aikaNaytto.X = 400.0;
181        aikaNaytto.Y = 400.0;
182        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
183        Add(aikaNaytto);
184    }
185   
186
187ExplosionSystem rajahdys =
188  new ExplosionSystem(LoadImage("bomb-157416_640"), 20);
189
190
191   
192
193
194void TormaaTimanttiin(PhysicsObject hahmo, PhysicsObject kolikko)
195{
196
197   }
198
199
200
201}
Note: See TracBrowser for help on using the repository browser.