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

Revision 7901, 4.3 KB checked in by sieerinn, 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   
23
24
25   
26
27    SoundEffect maaliAani = LoadSoundEffect("maali");
28
29    public override void Begin()
30    {
31        kävelyanimaatio = LoadAnimation("animaatio");
32        hyppyanimaatio = LoadAnimation("hyppyanimaatio");
33        Gravity = new Vector(0.0, -1000.0);
34       
35           
36        LuoKentta();
37        LisaaNappaimet();
38
39        Camera.Follow(pelaaja1);
40        Camera.ZoomFactor = 1.2;
41        Camera.StayInLevel = true;
42       
43    }
44
45    void LuoKentta()
46    {
47        TileMap kentta = TileMap.FromLevelAsset("kentta1");
48        kentta.SetTileMethod('#', LisaaTaso);
49        kentta.SetTileMethod('*', LisaaTahti);
50        kentta.SetTileMethod('N', LisaaPelaaja);
51        kentta.SetTileMethod('K', LisaaKissa);
52        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
53        Level.CreateBorders();
54        Level.Background.CreateGradient(Color.Red, Color.SkyBlue);
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.Green;
62        Add(taso);
63    }
64
65    void LisaaTahti(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
68        tahti.IgnoresCollisionResponse = true;
69        tahti.Position = paikka;
70        tahti.Image = tahtiKuva;
71        tahti.Tag = "tahti";
72        Add(tahti);
73    }
74
75    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
76    {
77        pelaaja1 = new PlatformCharacter(leveys, korkeus);
78        pelaaja1.Position = paikka;
79        pelaaja1.Mass = 4.0;
80        pelaaja1.AnimWalk = kävelyanimaatio;
81        pelaaja1.AnimIdle = new Animation(pelaajanKuva);
82        pelaaja1.AnimJump = hyppyanimaatio;
83        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
84        Add(pelaaja1);
85
86       
87     {
88
89     }
90    }
91
92    void LisaaKissa(Vector paikka, double leveys, double korkeus)
93    {
94        PhysicsObject kissa = new PhysicsObject(40, 20);
95        kissa.Shape = Shape.Rectangle;
96        Add(kissa);
97        kissa.Tag = "vihu";
98        kissa.Position = paikka;
99        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
100        tasoAivot.Speed = 100;
101
102        kissa.Brain = tasoAivot;
103    }
104
105    void LisaaNappaimet()
106    {
107        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
108        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
109
110        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
111        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
112        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
113
114        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
115
116        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
117        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
118        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
119
120
121        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
122    }
123     
124
125    void Liikuta(PlatformCharacter hahmo, double nopeus)
126    {
127        hahmo.Walk(nopeus);
128    }
129
130    void Hyppaa(PlatformCharacter hahmo, double nopeus)
131    {
132        hahmo.Jump(nopeus);
133    }
134
135    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
136    {
137        maaliAani.Play();
138        MessageDisplay.Add("Keräsit tähden!");
139        tahti.Destroy();
140    }
141
142
143   
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173}
Note: See TracBrowser for help on using the repository browser.