source: 2016/27/PaavoH/Adventure/Adventure/Adventure/Adventure.cs @ 7897

Revision 7897, 5.8 KB checked in by karkaite, 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 Adventure : 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 pelaajanKuva = LoadImage("pelaaja");
18    Image kolikkoKuva = LoadImage("kolikko");
19    Image laavaKuva = LoadImage("laava");
20    Image jaaKuva = LoadImage("jaa");
21    Image autoKuva = LoadImage("car");
22    Image maaKuva = LoadImage("maa");
23    Image setelikuva = LoadImage("seteli");
24    SoundEffect maaliAani = LoadSoundEffect("voitto");
25    Image maalinkuva = LoadImage("maali");
26
27    public override void Begin()
28    {
29        Gravity = new Vector(0, -1000);
30
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("kentta3");
42        kentta.SetTileMethod('#', LisaaTaso);
43        kentta.SetTileMethod('*', LisaaKolikko);
44        kentta.SetTileMethod('N', LisaaPelaaja);
45        kentta.SetTileMethod('L', LisaaLaava);
46        kentta.SetTileMethod('J', LisaaJaa);
47        kentta.SetTileMethod('M', LisaaMaali);
48        kentta.SetTileMethod('A', LisaaAuto);
49        kentta.SetTileMethod('S', LisaaSeteli);
50        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
51        Level.CreateBorders();
52        Level.Background.Color = Color.SkyBlue;
53    }
54
55    void LisaaTaso(Vector paikka, double leveys, double korkeus)
56    {
57        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
58        taso.Position = paikka;
59        taso.Image = maaKuva;
60        Add(taso);
61    }
62
63    void LisaaKolikko(Vector paikka, double leveys, double korkeus)
64    {
65        PhysicsObject kolikko = PhysicsObject.CreateStaticObject(leveys, korkeus);
66        kolikko.IgnoresCollisionResponse = true;
67        kolikko.Position = paikka;
68        kolikko.Image = kolikkoKuva;
69        kolikko.Tag = "kolikko";
70        Add(kolikko);
71    }
72
73    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
74    {
75        pelaaja1 = new PlatformCharacter(leveys / 2, korkeus);
76        pelaaja1.Position = paikka;
77        pelaaja1.Mass = 4.0;
78        pelaaja1.Image = pelaajanKuva;
79        AddCollisionHandler(pelaaja1, "kolikko", TormaaKolikkoon);
80        AddCollisionHandler(pelaaja1, "seteli", TormaaSeteliin);
81        AddCollisionHandler(pelaaja1, "auto", autoontormataan);
82        Add(pelaaja1);
83    }
84    void LisaaLaava(Vector paikka, double leveys, double korkeus)
85    {
86        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
87        taso.Position = paikka;
88        taso.Image = laavaKuva;
89        Add(taso);
90    }
91
92    void LisaaJaa(Vector paikka, double leveys, double korkeus)
93    {
94        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
95        taso.Position = paikka;
96        taso.Image = jaaKuva;
97        Add(taso);
98    }
99    void LisaaMaali(Vector paikka, double leveys, double korkeus)
100    {
101        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
102        maali.IgnoresCollisionResponse = true;
103        maali.Position = paikka;
104        maali.Image = maalinkuva;
105        maali.Tag = "maali";
106        Add(maali);
107    }
108    void LisaaAuto(Vector paikka, double leveys, double korkeus)
109    {
110        PhysicsObject auto = new PhysicsObject(leveys + 10, korkeus);
111        //auto.IgnoresCollisionResponse = true;
112        auto.Position = paikka;
113        auto.Image = autoKuva;
114        auto.Tag = "auto";
115        Add(auto);
116    }
117    void LisaaSeteli(Vector paikka, double leveys, double korkeus)
118    {
119        PhysicsObject seteli = PhysicsObject.CreateStaticObject(leveys, korkeus);
120        seteli.IgnoresCollisionResponse = true;
121        seteli.Position = paikka;
122        seteli.Image = setelikuva;
123        seteli.Tag = "seteli";
124        Add(seteli);
125    }
126    void LisaaNappaimet()
127    {
128
129        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
130        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
131
132        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
133        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
134        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
135
136        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
137
138        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
139        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
140        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
141
142        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
143    }
144
145    void Liikuta(PlatformCharacter hahmo, double nopeus)
146    {
147        hahmo.Walk(nopeus);
148    }
149
150    void Hyppaa(PlatformCharacter hahmo, double nopeus)
151    {
152        hahmo.Jump(nopeus);
153    }
154
155    void TormaaKolikkoon(PhysicsObject hahmo, PhysicsObject kolikko)
156    {
157        maaliAani.Play();
158        MessageDisplay.Add("Keräsit kolikon!");
159        kolikko.Destroy();
160    }
161    void autoontormataan(PhysicsObject hahmo, PhysicsObject auto)
162    {
163        // auto.Move(new Vector(20.0, 0));
164    }
165
166    void TormaaSeteliin(PhysicsObject hahmo, PhysicsObject seteli)
167    {
168        maaliAani.Play();
169        MessageDisplay.Add("Keräsit setelin!");
170        seteli.Destroy();
171    }
172}
Note: See TracBrowser for help on using the repository browser.