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

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