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

Revision 7423, 4.6 KB checked in by karkaite, 6 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.SetTileMethod('X', LisaaEste);
44        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
45        Level.CreateBorders();
46        Level.Background.CreateGradient(Color.Orange, Color.Black);
47    }
48
49    void LisaaTaso(Vector paikka, double leveys, double korkeus)
50    {
51        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
52        taso.Position = paikka;
53        taso.Color = Color.Red;
54        Add(taso);
55    }
56
57    void LisaaTahti(Vector paikka, double leveys, double korkeus)
58    {
59        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
60        tahti.IgnoresCollisionResponse = true;
61        tahti.Position = paikka;
62        tahti.Image = LoadImage("Piste");
63        tahti.Tag = "tahti";
64        Add(tahti);
65    }
66
67    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
68    {
69        pelaaja1 = new PlatformCharacter(leveys, korkeus * 0.7);
70        pelaaja1.Position = paikka;
71        pelaaja1.Mass = 4.0;
72        pelaaja1.Image = pelaajanKuva;
73        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
74        Add(pelaaja1);
75        AddCollisionHandler(pelaaja1, "piikki", TormaaPiikkiin);
76    }
77
78    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
79    {
80        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
81        piikki.IgnoresCollisionResponse = true;
82        piikki.Position = paikka;
83        //piikki.Image = Piikki;
84        piikki.Color = Color.Black;
85        piikki.Tag = "piikki";
86        piikki.Image = piikkiKuva;
87        Add(piikki);
88    }
89
90    void LisaaEste(Vector paikka, double leveys, double korkeus)
91    {
92        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
93        piikki.IgnoresCollisionResponse = true;
94        piikki.Position = paikka;
95        //piikki.Image = Piikki;
96        piikki.Color = Color.Orange;
97        piikki.Tag = "este";
98        piikki.Image = piikkiKuva;
99        Add(piikki);
100
101
102    }
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.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
111        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
112        Keyboard.Listen(Key.Up, 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        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
121    }
122
123    void Liikuta(PlatformCharacter hahmo, double nopeus)
124    {
125        hahmo.Walk(nopeus);
126    }
127
128    void Hyppaa(PlatformCharacter hahmo, double nopeus)
129    {
130        hahmo.Jump(nopeus);
131    }
132
133    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
134    {
135        maaliAani.Play();
136        MessageDisplay.Add("Keräsit pisteen!");
137        tahti.Destroy();
138    }
139    void TormaaPiikkiin(PhysicsObject pelaaja, PhysicsObject piikki)
140    {
141        pelaaja.Destroy();
142        MessageDisplay.Add("Hävisit pelin!");
143    }
144
145}
Note: See TracBrowser for help on using the repository browser.