source: 2013/24/BenjaminT/Numerohyppy/Numerohyppy/Numerohyppy/Numerohyppy.cs @ 4091

Revision 4091, 4.6 KB checked in by betiterv, 7 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 Numerohyppy : 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("pelaaja2");
18    Image tahtiKuva = LoadImage("tahti");
19    Image luukkuKuva = LoadImage("luukku2");
20    Image pikkiKuva = LoadImage("pikki");
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        Camera.StayInLevel = true;
33    }
34
35    void LuoKentta()
36    {
37        TileMap kentta = TileMap.FromLevelAsset("kentta1");
38        kentta.SetTileMethod('#', LisaaTaso);
39        kentta.SetTileMethod('*', LisaaTahti);
40        kentta.SetTileMethod('N', LisaaPelaaja);
41        kentta.SetTileMethod('-', LisaaLuukku);
42        kentta.SetTileMethod('/', LisaaPikki);
43        kentta.SetTileMethod(' B', LisaaMaali);
44        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
45        Level.CreateBorders();
46        Level.Background.CreateGradient(Color.Orange, Color.Green);
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.DarkBlue;
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 = tahtiKuva;
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);
70        pelaaja1.Position = paikka;
71        pelaaja1.Mass = 4.0;
72        pelaaja1.Image = pelaajanKuva;
73        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
74        Add(pelaaja1);
75    }
76
77    void LisaaLuukku(Vector paikka, double leveys, double korkeus)
78    {
79
80        PhysicsObject luukku2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
81        luukku2.Position = paikka;
82        luukku2.Image = luukkuKuva;
83        luukku2.Tag = "luukku";
84        Add(luukku2);
85    }
86      void LisaaPikki(Vector paikka, double leveys, double korkeus)
87      {
88         PhysicsObject pikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
89         pikki.Position = paikka;
90         pikki.Image = pikkiKuva;
91         pikki.Tag = "pikki";
92         Add(pikki); 
93      }
94         void LisaaMaali(Vector paikka, double leveys, double korkeus)
95         {
96           
97            PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
98         maali.Position = paikka;
99         maali.Image = pikkiKuva;
100         maali.Tag = "maali";
101         Add(maali);
102     
103         }
104           void LisaaNappaimet()
105    {
106        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
107        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
108
109        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
110        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
111        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
112
113        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
114
115        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
116        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
117        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
118
119        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
120    }
121
122    void Liikuta(PlatformCharacter hahmo, double nopeus)
123    {
124        hahmo.Walk(nopeus);
125    }
126
127    void Hyppaa(PlatformCharacter hahmo, double nopeus)
128    {
129        hahmo.Jump(nopeus);
130    }
131
132    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
133    {
134        maaliAani.Play();
135        MessageDisplay.Add("Keräsit tähden!");
136        tahti.Destroy();
137    }
138}
Note: See TracBrowser for help on using the repository browser.