source: 2016/27/JamiR/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 7944

Revision 7944, 4.7 KB checked in by jajejora, 3 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 Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14   
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("paikallaan");
19    Image tahtiKuva = LoadImage("tahti");
20    Animation kävelyanimaatio;
21    Animation hyppyanimaatio;
22    Image tasonKuva = LoadImage("Untitled");
23    Animation vihukävely;
24   
25
26
27   
28
29    SoundEffect maaliAani = LoadSoundEffect("maali");
30
31    public override void Begin()
32    {
33        kävelyanimaatio = LoadAnimation("animaatio");
34        hyppyanimaatio = LoadAnimation("hyppyanimaatio");
35        vihukävely = LoadAnimation("vihuanimaatio");
36        Gravity = new Vector(0.0, -1000.0);
37        IsFullScreen = true;
38
39
40        LuoKentta();
41        LisaaNappaimet();
42
43        Camera.Follow(pelaaja1);
44        Camera.ZoomFactor = 2;
45        Camera.StayInLevel = true;
46       
47    }
48
49    void LuoKentta()
50    {
51        TileMap kentta = TileMap.FromLevelAsset("kentta1");
52        kentta.SetTileMethod('#', LisaaTaso);
53        kentta.SetTileMethod('*', LisaaTahti);
54        kentta.SetTileMethod('N', LisaaPelaaja);
55        kentta.SetTileMethod('K', LisaaKissa);
56        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
57        Level.CreateBorders();
58        Level.Background.CreateGradient(Color.Black, Color.SkyBlue);
59    }
60
61    void LisaaTaso(Vector paikka, double leveys, double korkeus)
62    {
63        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
64        taso.Position = paikka;
65        taso.Color = Color.Green;
66        taso.Image = tasonKuva;
67        Add(taso);
68    }
69
70    void LisaaTahti(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        tahti.IgnoresCollisionResponse = true;
74        tahti.Position = paikka;
75        tahti.Image = tahtiKuva;
76        tahti.Tag = "tahti";
77        Add(tahti);
78    }
79
80    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
81    {
82        pelaaja1 = new PlatformCharacter(leveys, korkeus);
83        pelaaja1.Position = paikka;
84        pelaaja1.Mass = 4.0;
85        pelaaja1.AnimWalk = kävelyanimaatio;
86        pelaaja1.AnimIdle = new Animation(pelaajanKuva);
87        pelaaja1.AnimJump = hyppyanimaatio;
88        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
89        AddCollisionHandler(pelaaja1, "kissa", TormaaKissaan);
90        Add(pelaaja1);
91
92       
93     {
94
95     }
96    }
97
98    void LisaaKissa(Vector paikka, double leveys, double korkeus)
99    {
100        PlatformCharacter kissa = new PlatformCharacter(60, 60);
101       
102        kissa.Tag = "vihu";
103        kissa.Position = paikka;
104        kissa.AnimWalk = vihukävely;
105        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
106        tasoAivot.Speed = 100;
107        kissa.Brain = tasoAivot;
108        Add(kissa);
109    }
110
111    void LisaaNappaimet()
112    {
113        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
114        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
115
116        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
117        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
118        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
119
120        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
121
122        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
123        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
124        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
125
126
127        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
128    }
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        maaliAani.Play();
144        MessageDisplay.Add("Keräsit tähden!");
145        tahti.Destroy();
146    }
147
148
149    void TormaaKissaan(PhysicsObject hahmo, PhysicsObject kissa)
150    {
151        pelaaja1.Destroy();
152
153    }
154
155   
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185}
Note: See TracBrowser for help on using the repository browser.