source: 2012/24/EemeliKo/BirdJump/BirdJump/BirdJump/BirdJump.cs @ 3083

Revision 3083, 6.3 KB checked in by taeekotr, 8 years ago (diff)

Talletus.

Line 
1
2using System;
3using System.Collections.Generic;
4using Jypeli;
5using Jypeli.Assets;
6using Jypeli.Controls;
7using Jypeli.Effects;
8using Jypeli.Widgets;
9
10public class BirdJump : PhysicsGame
11{
12
13    const double nopeus = 200;
14    const double hyppyNopeus = 1000;
15    const int RUUDUN_KOKO = 70;
16
17    PlatformCharacter pelaaja1;
18
19    Image pelaajanKuva = LoadImage("Bird");
20    Image tahtiKuva = LoadImage("tahti");
21    Image OlioKuva = LoadImage("Olio");
22
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24
25 
26
27
28    public override void Begin()
29    {
30        Level.Background.CreateStars();       
31        Gravity = new Vector(0, -700);
32
33
34        luoKentta();
35        lisaaNappaimet();
36       
37        Camera.Follow(pelaaja1);
38        Camera.ZoomFactor = 1.2;
39        Camera.StayInLevel = true;
40
41        PhysicsObject Olio = new PhysicsObject(40, 20);
42        Olio.Shape = Shape.Rectangle;
43        Add(Olio);
44
45       
46       
47
48       
49
50       
51
52    }
53
54    void luoKentta()
55    {
56        TileMap kentta = TileMap.FromFile("kentta1.txt");
57        kentta.SetTileMethod('#', lisaaTaso);
58        kentta.SetTileMethod('*', tahti);
59        kentta.SetTileMethod('N', lisaaPelaaja);
60        kentta.SetTileMethod('%', lisaaLiikkuvaTaso);
61        kentta.SetTileMethod('!', lisaaNakymatonPalikka);
62        kentta.SetTileMethod('O', lisaaOlio);
63        kentta.SetTileMethod('$', LisaaLinnaPalikka);
64        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
65        Level.CreateBorders();
66
67
68           
69    } //pelin tarina: :) :D XD
70
71    void lisaaTaso(Vector paikka, double leveys, double korkeus)
72    {
73        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
74        taso.Position = paikka;
75        taso.Color = Color.Green;
76        Add(taso);
77        taso.Tag = "palikka";
78    }
79
80    void tahti(Vector paikka, double leveys, double korkeus)
81    {
82        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
83        tahti.IgnoresCollisionResponse = true;
84        tahti.Position = paikka;
85        tahti.Image = tahtiKuva;
86        tahti.Mass = 40.0;
87        tahti.Tag = "tahti";
88        Add(tahti);
89    }
90
91    void lisaaPelaaja(Vector paikka, double leveys, double korkeus)
92    {
93        pelaaja1 = new PlatformCharacter(leveys, korkeus);
94        pelaaja1.Position = paikka;
95        pelaaja1.Mass = 4.0;
96        pelaaja1.Image = pelaajanKuva;
97        AddCollisionHandler(pelaaja1, kasittelePelaajanTormays);
98        Add(pelaaja1);
99
100        pelaaja1.CanRotate = true;
101    }
102
103    void lisaaNappaimet()
104    {
105        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
106        Keyboard.Listen(Key.L,ButtonState.Pressed, ConfirmExit, "Lopeta peli");
107
108        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
109        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
110        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
111
112        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
113
114        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
115        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
116        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
117
118        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
119    }
120
121    void liikuta(PlatformCharacter hahmo, double nopeus)
122    {
123        hahmo.Walk(nopeus);
124    }           
125
126    void hyppaa(PlatformCharacter hahmo, double nopeus)
127    {
128        hahmo.Jump(nopeus);
129    }
130
131    void kasittelePelaajanTormays(PhysicsObject hahmo, PhysicsObject kohde)
132    {
133        if (kohde.Tag.ToString() == "tahti")
134        {
135            maaliAani.Play();
136            MessageDisplay.Add("Sait pisteen!");
137            kohde.Destroy();
138        }
139        if (kohde.Tag.ToString() == "palikka")
140        {
141            kohde.Color = RandomGen.NextColor();
142        }
143    }
144    void lisaaLiikkuvaTaso(Vector paikka, double leveys, double korkeus)
145    {
146        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
147        taso.Position = paikka;
148        taso.Color = Color.Green;
149        Add(taso);
150        taso.Tag = "palikka";
151        taso.Velocity = new Vector(40, 0);
152        AddCollisionHandler(taso, "Nakymaton", VaihdaSuuntaa);
153        //AddCollisionHandler(taso, VaihdaSuuntaa);
154
155           
156    }
157    void lisaaNakymatonPalikka(Vector paikka, double leveys, double korkeus)
158    {
159        PhysicsObject Nakymaton = new PhysicsObject(leveys, korkeus);
160        Nakymaton.Position = paikka;
161        Nakymaton.Color = Color.Green;
162        Add(Nakymaton);
163        Nakymaton.Tag = "Nakymaton";
164        Nakymaton.IgnoresGravity = true;
165        Nakymaton.IgnoresCollisionResponse = true;
166        Nakymaton.Color = Color.Black;
167       
168
169    }
170    void VaihdaSuuntaa(IPhysicsObject Liikkuva, IPhysicsObject Nakymaton)
171    {
172        Liikkuva.Velocity = Liikkuva.Velocity * -1      ;
173    }
174    void lisaaOlio(Vector paikka, double leveys, double korkeus)
175    {
176        PhysicsObject olio = PhysicsObject.CreateStaticObject(80, 100);
177        olio.Shape = Shape.Rectangle;
178        olio.Color = Color.Green;
179        Add(olio);
180        olio.Image = OlioKuva;
181
182        PathFollowerBrain polkuAivot = new PathFollowerBrain();
183        List<Vector> polku = new List<Vector>();
184        polku.Add(new Vector(-50, -100));
185        polku.Add(new Vector(-100, 50));
186        polku.Add(new Vector(-250, -200));
187        polkuAivot.Path = polku;
188        polkuAivot.Loop = true;
189        polkuAivot.Speed = 100;
190
191        olio.Brain = polkuAivot;
192        polkuAivot.Active = true;
193
194}
195    void LisaaLinnaPalikka(Vector paikka, double leveys, double korkeus)
196    {
197        PhysicsObject Nakymaton = new PhysicsObject(leveys, korkeus);
198        Nakymaton.Position = paikka;
199        Nakymaton.Color = Color.Green;
200        Add(Nakymaton);
201        Nakymaton.Tag = "Nakymaton";
202        Nakymaton.IgnoresGravity = true;
203        Nakymaton.IgnoresCollisionResponse = true;
204        Nakymaton.Color = Color.White;
205
206
207    }
208
209
210}
Note: See TracBrowser for help on using the repository browser.