source: 2013/26/JuusoM/amnesia2d/amnesia2d/amnesia2d/amnesia2d.cs @ 4247

Revision 4247, 7.3 KB checked in by juiitamm, 6 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 amnesia2d : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image Tiili = LoadImage("Tiili");
18    Image pelaajanKuva = LoadImage("HahmoV2");
19    Image tahtiKuva = LoadImage("tahti");
20    Image kalterit = LoadImage("Kalterit");
21    Image kivi = LoadImage("Kivi");
22    Image hajonnutKalteri = LoadImage("Kalterit");
23    Image venttiiliPic = LoadImage("venttiili");
24    Image tynnyriPic = LoadImage("Tynnyri"); 
25
26    SoundEffect maaliAani = LoadSoundEffect("maali");
27
28    //PhysicsObject tahti;
29
30    //IntMeter pisteet;
31
32    Light valo;
33
34    public override void Begin()
35    {
36        Gravity = new Vector(0, -1000);
37
38        LuoKentta();
39        LisaaNappaimet();
40
41        Camera.Follow(pelaaja1);
42        Camera.ZoomFactor = 2.2;
43        Camera.StayInLevel = true;
44    }
45
46    void LuoKentta()
47    {
48        ColorTileMap kentta = ColorTileMap.FromLevelAsset("Kartta3");
49        kentta.SetTileMethod(Color.Black, LisaaTaso);
50        kentta.SetTileMethod(Color.Gold, LisaaTahti);
51        kentta.SetTileMethod(Color.Red, LisaaPelaaja);
52        kentta.SetTileMethod(Color.Orange, LisaaKalteri);
53        kentta.Optimize(Color.Orange);
54        kentta.SetTileMethod(Color.YellowGreen, LisaaHajonnutKalteri);
55        kentta.Optimize(Color.YellowGreen);
56        kentta.SetTileMethod(Color.Harlequin, LisaaVenttiili);
57        kentta.SetTileMethod(Color.BrightGreen, LisaaTynnyri);
58        kentta.SetTileMethod(Color.SpringGreen, LisaaKivi);
59        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
60        Level.CreateBorders();
61        Level.Background.Color = Color.Black;
62
63        Level.AmbientLight = -1.0;
64
65        valo = new Light();
66        valo.Intensity = 2.0;
67        valo.Distance = 250;
68        valo.Position = pelaaja1.Position;
69
70        Add(valo);
71    }
72
73    protected override void Update(Microsoft.Xna.Framework.GameTime gameTime)
74    {
75        valo.Position = pelaaja1.AbsolutePosition;
76        base.Update(gameTime);
77    }
78
79    void LisaaTaso(Vector paikka, double leveys, double korkeus)
80    {
81        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
82        taso.Position = paikka;
83        taso.Image = Tiili;
84        Add(taso);
85    }
86
87  void LisaaKivi(Vector paikka, double leveys, double korkeus)
88    {
89        PhysicsObject Kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
90        Kivi.Position = paikka;
91        Kivi.Image = kivi;
92        Kivi.Tag = "kivi";
93        Add(Kivi);
94    }
95
96
97    void LisaaTynnyri(Vector paikka, double leveys, double korkeus)
98    {
99        PhysicsObject tynnyri = PhysicsObject.CreateStaticObject(leveys, korkeus);
100        tynnyri.Position = paikka;
101        tynnyri.Image = tynnyriPic;
102        Add(tynnyri);
103    }
104
105    void LisaaKalteri(Vector paikka, double leveys, double korkeus)
106    {
107        PhysicsObject kalteri = PhysicsObject.CreateStaticObject(leveys, korkeus);
108        kalteri.Position = paikka;
109        kalteri.Image = kalterit;
110        kalteri.Tag = "Kalterit";
111        Add(kalteri);
112    }
113
114    void LisaaHajonnutKalteri(Vector paikka, double leveys, double korkeus)
115    {
116        PhysicsObject hajoavaKalteri = PhysicsObject.CreateStaticObject(leveys, korkeus);
117        hajoavaKalteri.Position = paikka;
118        hajoavaKalteri.Image = kalterit;
119        hajoavaKalteri.Tag = "HajoavatKalterit";
120        Add(hajoavaKalteri);
121    }
122
123    void LisaaVenttiili(Vector paikka, double leveys, double korkeus)
124    {
125        PhysicsObject hajoavaVenttiili = PhysicsObject.CreateStaticObject(leveys, korkeus);
126        hajoavaVenttiili.Position = paikka;
127        hajoavaVenttiili.Image = venttiiliPic;
128        hajoavaVenttiili.Tag = "venttiiliTag";
129        Add(hajoavaVenttiili);
130    }
131
132    void LisaaTahti(Vector paikka, double leveys, double korkeus)
133    {
134        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
135        tahti.IgnoresCollisionResponse = true;
136        tahti.Position = paikka;
137        tahti.Image = tahtiKuva;
138        tahti.Tag = "tahti";
139        Add(tahti);
140    }
141
142    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
143    {
144        pelaaja1 = new PlatformCharacter(leveys-9, korkeus-6);
145        pelaaja1.Position = paikka;
146        pelaaja1.Mass = 4.0;
147        pelaaja1.Image = pelaajanKuva;
148        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
149        AddCollisionHandler(pelaaja1, "Kalterit", TormaaKalteriin);
150        AddCollisionHandler(pelaaja1, "HajoavatKalterit", rikoKalterit);
151        AddCollisionHandler(pelaaja1, "venttiiliTag", rikoVenttiili);
152        Add(pelaaja1);
153    }
154
155    void LisaaNappaimet()
156    {
157        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
158        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
159
160        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
161        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
162        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
163
164        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
165
166        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
167        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
168        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
169
170        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
171    }
172
173    void Liikuta(PlatformCharacter hahmo, double nopeus)
174    {
175        hahmo.Walk(nopeus);
176    }
177
178    void Hyppaa(PlatformCharacter hahmo, double nopeus)
179    {
180        hahmo.Jump(nopeus);
181    }
182
183  void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
184  {
185      maaliAani.Play();
186      MessageDisplay.Add("Löysit tulitikut");
187      tahti.Destroy();
188  }
189
190  void TormaaKalteriin(PhysicsObject hahmo, PhysicsObject kalteri)
191  {
192      MessageDisplay.Add("Jumissa");
193  }
194
195  void rikoKalterit(PhysicsObject hahmo, PhysicsObject hajoavaKalteri)
196  {
197      hajoavaKalteri.Destroy();
198  }
199
200  void rikoVenttiili(PhysicsObject hahmo, PhysicsObject hajoavaVenttiili)
201  {
202      hajoavaVenttiili.Destroy();
203  }
204 // void LisaaLaskuri()
205 // {
206 //     pisteet = LuoLaskuri(Screen.Right - 100, Screen.Top - 100);
207 // }
208 //
209 // void KasitteleKerays(PhysicsObject pelaaja1, PhysicsObject kohde)
210 // {
211 //     if (kohde == tahti)
212 //     {
213 //         pisteet.Value += 1;
214 //     }
215 // }
216 //
217 // IntMeter LuoLaskuri(double x, double y)
218 // {
219 //     IntMeter laskuri = new IntMeter(0);
220 //     laskuri.MaxValue = 10;
221 //
222 //       Label naytto = new Label();
223 //     naytto.BindTo(laskuri);
224 //     naytto.X = Screen.Right -25;
225 //     naytto.Y = Screen.Top - 25;
226 //     naytto.TextColor = Color.White;
227 //     naytto.BorderColor = Level.Background.Color;
228 //     naytto.Color = Level.Background.Color;
229 //     Add(naytto);
230 //
231 //     return laskuri;
232 //
233 // }
234
235     
236}
Note: See TracBrowser for help on using the repository browser.