source: 2016/24/IlmariS/Tasohyppy/Tasohyppy/Tasohyppy/Tasohyppy.cs @ 7386

Revision 7386, 4.2 KB checked in by karkaite, 7 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 Tasohyppy : 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("Lima");
18    Image palikkaKuva = LoadImage("palikka");
19    Image piikkiKuva = LoadImage("piikki");
20
21    SoundEffect maaliAani = LoadSoundEffect("maali");
22
23    public override void Begin()
24    {
25        Gravity = new Vector(0, -1000);
26
27        LuoKentta();
28        LisaaNappaimet();
29
30        Camera.Follow(pelaaja1);
31        Camera.ZoomFactor = 1.2;
32        Level.Background.Color = Color.Green;
33        Camera.StayInLevel = true;
34    }
35
36    void LuoKentta()
37    {
38        TileMap kentta = TileMap.FromLevelAsset("kentta1");
39        kentta.SetTileMethod('#', LisaaTaso);
40        kentta.SetTileMethod('*', LisaaTahti);
41        kentta.SetTileMethod('N', LisaaPelaaja);
42        kentta.SetTileMethod('L', LisaaPiikki);
43        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
44        Level.CreateBorders();
45        Level.Background.CreateGradient(Color.Orange, Color.Black);
46    }
47
48    void LisaaTaso(Vector paikka, double leveys, double korkeus)
49    {
50        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
51        taso.Position = paikka;
52        taso.Color = Color.Red;
53        Add(taso);
54    }
55
56    void LisaaTahti(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
59        tahti.IgnoresCollisionResponse = true;
60        tahti.Position = paikka;
61        tahti.Image = LoadImage("Piste");
62        tahti.Tag = "tahti";
63        Add(tahti);
64    }
65
66    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
67    {
68        pelaaja1 = new PlatformCharacter(leveys, korkeus * 0.7);
69        pelaaja1.Position = paikka;
70        pelaaja1.Mass = 4.0;
71        pelaaja1.Image = pelaajanKuva;
72        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
73        Add(pelaaja1);
74        AddCollisionHandler(pelaaja1, "piikki", TormaaPiikkiin);
75    }
76
77    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
80        piikki.IgnoresCollisionResponse = true;
81        piikki.Position = paikka;
82        //piikki.Image = Piikki;
83        piikki.Color = Color.Black;
84        piikki.Tag = "piikki";
85        piikki.Image = piikkiKuva;
86        Add(piikki);
87   
88   
89   
90    }
91
92
93    void LisaaNappaimet()
94    {
95        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
96        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
97
98        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
99        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
100        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
101
102        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
103
104        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
105        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
106        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
107
108        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
109    }
110
111    void Liikuta(PlatformCharacter hahmo, double nopeus)
112    {
113        hahmo.Walk(nopeus);
114    }
115
116    void Hyppaa(PlatformCharacter hahmo, double nopeus)
117    {
118        hahmo.Jump(nopeus);
119    }
120
121    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
122    {
123        maaliAani.Play();
124        MessageDisplay.Add("Keräsit pisteen!");
125        tahti.Destroy();
126    }
127    void TormaaPiikkiin(PhysicsObject pelaaja, PhysicsObject piikki)
128    {
129        pelaaja.Destroy();
130    }
131}
Note: See TracBrowser for help on using the repository browser.