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

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