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

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