source: 2012/24/AnnaS/Hiiripeli/Hiiripeli/Hiiripeli/Hiiripeli.cs @ 2986

Revision 2986, 5.6 KB checked in by anmasavo, 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 Hiiripeli : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image tahtiKuva = LoadImage("Tahti");
18    Image lahtoKuva = LoadImage ("Lahto");
19    Image maaliKuva = LoadImage("Maali");
20    Image ruohonKuva = LoadImage ("Ruoho");
21    Image pelaajanKuva = LoadImage("Hiiri");
22    Image pelaajanvasenKuva;
23    Image tahtiKuva = LoadImage("Juusto");
24    Image pilvikuva1 = LoadImage("Pilvi");
25    SoundEffect maaliAani = LoadSoundEffect("Maaliaani");
26
27    public override void Begin()
28    {
29        Gravity = new Vector(0, -1000);
30        pelaajanvasenKuva = Image.Mirror(pelaajanKuva);
31
32        luoKentta();
33        lisaaNappaimet();
34
35        Camera.Follow(pelaaja1);
36        Camera.ZoomFactor = 1.2;
37        Camera.StayInLevel = true;
38    }
39
40    void luoKentta()
41    {
42        TileMap kentta = TileMap.FromFile("kentta1.txt");
43        kentta.SetTileMethod('#', lisaaPilvi);
44        kentta.SetTileMethod('*', lisaaJuusto);
45        kentta.SetTileMethod('N', lisaaPelaaja);
46        kentta.SetTileMethod('R', lisaaRuoho);
47        kentta.SetTileMethod('L', lisaaLahto);
48        kentta.SetTileMethod('L', lisaaLahto);
49        kentta.SetTileMethod('T', lisaaTahti);
50        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
51        Level.CreateBorders();
52        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
53    }
54
55    void lisaaPilvi(Vector paikka, double leveys, double korkeus)
56    {
57        PhysicsObject Pilvi = PhysicsObject.CreateStaticObject(leveys*2, korkeus);
58        Pilvi.Position = paikka;
59        Pilvi.Image = pilvikuva1;
60        Add(Pilvi);
61    }
62    void lisaaLentokone(Vector paikka, double leveys, double korkeus)
63    {
64        PhysicsObject Pilvi = PhysicsObject.CreateStaticObject(leveys * 2, korkeus);
65        Lentokone.Position = paikka;
66        Lentokone.Image = pilvikuva1;
67        Add(lentokone);
68    }
69   
70    void lisaaTahti(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject Tahti = PhysicsObject.CreateStaticObject(leveys * 2, korkeus);
73        Pilvi.Position = paikka;
74        Pilvi.Image = tahtikuva;
75        Add(Tahti);
76    }
77   
78    void lisaaJuusto(Vector paikka, double leveys, double korkeus)
79    {
80        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys*0.8, korkeus* 0.8);
81        tahti.IgnoresCollisionResponse = true;
82        tahti.Position = paikka;
83        tahti.Image = tahtiKuva;
84        tahti.Tag = "Juusto";
85        Add(tahti);
86    }
87
88    void lisaaPelaaja(Vector paikka, double leveys, double korkeus)
89    {
90        pelaaja1 = new PlatformCharacter(leveys*0.8, korkeus*0.8);
91        pelaaja1.Position = paikka;
92        pelaaja1.Mass = 4.0;
93        pelaaja1.Image = pelaajanKuva;
94        AddCollisionHandler(pelaaja1, kasittelePelaajanTormays);
95        Add(pelaaja1);
96        pelaaja1.LeftWalkingAnimation = pelaajanvasenKuva;
97        pelaaja1.RightWalkingAnimation = pelaajanKuva;
98    }
99    void lisaaRuoho(Vector paikka, double leveys, double korkeus)
100    {
101        PhysicsObject Ruoho = PhysicsObject.CreateStaticObject(leveys * 2, korkeus);
102        Ruoho.Position = paikka;
103        Ruoho.Image = ruohonKuva;
104        Add(Ruoho);
105
106    }
107
108
109    void lisaaMaali(Vector paikka, double leveys, double korkeus)
110    {
111        PhysicsObject Ruoho = PhysicsObject.CreateStaticObject(leveys * 2, korkeus);
112        Ruoho.Position = paikka;
113        Ruoho.Image = ruohonKuva;
114        Add(Ruoho);
115    }
116
117
118    void lisaaLahto(Vector paikka, double leveys, double korkeus)
119    {
120        PhysicsObject Lahto = PhysicsObject.CreateStaticObject(leveys * 2, korkeus);
121        Lahto.Position = paikka;
122        Lahto.Image = lahtoKuva;
123        Add(Lahto);
124        Lahto.IgnoresCollisionResponse = true;
125    } 
126 
127     
128   
129    void lisaaNappaimet()
130    {
131        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
132        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
133        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
134
135        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
136        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
137        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
138
139        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
140
141        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
142        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
143        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
144
145        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
146    }
147
148    void liikuta(PlatformCharacter hahmo, double nopeus)
149    {
150        hahmo.Walk(nopeus);
151    }
152
153    void hyppaa(PlatformCharacter hahmo, double nopeus)
154    {
155        hahmo.Jump(nopeus);
156    }
157
158    void kasittelePelaajanTormays(PhysicsObject hahmo, PhysicsObject kohde)
159    {
160        if (kohde.Tag.ToString() == "Juusto")
161        {
162            maaliAani.Play();
163            MessageDisplay.Add("Keräsit juuston!");
164            kohde.Destroy();
165         
166        }
167    }
168}
Note: See TracBrowser for help on using the repository browser.