source: 2011/23/mianaure/Oma peli/Tasohyppelypeli4/Tasohyppelypeli4/Peli.cs @ 1745

Revision 1745, 5.5 KB checked in by anlakane, 9 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PhysicsObject pelaaja1;
16   
17    Image pelaajanKuva = LoadImage("norsu");
18
19    Image pelaajanKuva3 = LoadImage("norsu3");
20
21    Image tahtiKuva = LoadImage("tahti");
22
23    int tahtienmaara = 0;
24    int mpainovoima = 5;
25
26    SoundEffect maaliAani = LoadSoundEffect("maali");
27
28
29
30    public override void Begin()
31    {
32       
33        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
34        MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima);
35        Gravity = new Vector(0, -1000);
36        minne = "alas";
37        luoKentta();
38        lisaaNappaimet();
39        Camera.Follow(pelaaja1);
40        Camera.ZoomFactor = 1.2;
41        Camera.StayInLevel = true;
42        tahtienmaara = 0;
43
44
45    }
46
47    void luoKentta()
48    {
49        TileMap kentta = TileMap.FromFile("kentta1.txt");
50        kentta['#'] = lisaaTaso;
51        kentta['*'] = lisaaTahti;
52        kentta['N'] = lisaaPelaaja;
53        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
54        Level.CreateBorders();
55        Level.Background.CreateGradient(Color.White, Color.LightGray);
56    }
57
58    PhysicsObject lisaaTaso()
59    {
60        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
61        taso.Color = Color.DarkGray;
62        return taso;
63    }
64
65    PhysicsObject lisaaTahti()
66    {
67        PhysicsObject tahti = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
68        tahti.Image = tahtiKuva;
69        tahti.Tag = "tahti";
70        return tahti;
71    }
72
73    PhysicsObject lisaaPelaaja()
74    {
75        pelaaja1 = new PhysicsObject (40, 40, Shape.Circle);
76        pelaaja1.Mass = 4.0;
77        pelaaja1.Image = pelaajanKuva;
78        pelaaja1.Restitution = 0.5;
79        pelaaja1.CanRotate = false;
80
81
82       
83        AddCollisionHandler(pelaaja1, osuTahteen);
84        return pelaaja1;
85    }
86
87    void lisaaNappaimet()
88    {
89       
90        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
91        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
92        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
93        Keyboard.Listen(Key.Space, ButtonState.Pressed, painov, "Pelaaja hyppää");
94
95        //ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
96        //ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
97        //ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
98        //ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
99    }
100
101
102    void liikuta(PhysicsObject hahmo, double nopeus)
103    {
104        //hahmo.Walk(nopeus);
105        if (hahmo.Velocity.Magnitude < 200)
106        {
107            if (minne == "alas")
108            {
109
110                hahmo.Hit(new Vector(nopeus, 0));
111            }
112            if (minne == "ylös")
113            {
114                hahmo.Hit(new Vector(nopeus, 0));
115            }
116            if (minne == "oikea")
117            {
118                hahmo.Hit(new Vector(0, nopeus));
119            }
120            if (minne == "vasen")
121            {
122                hahmo.Hit(new Vector(0, nopeus));
123            }
124        }
125    }
126
127
128
129
130
131
132    void osuTahteen(PhysicsObject hahmo, PhysicsObject kohde)
133    {
134        if (kohde.Tag.ToString() == "tahti")
135        {
136
137            maaliAani.Play();
138            tahtienmaara++;
139            MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
140            kohde.Destroy();
141            if (tahtienmaara == 3)
142            {
143                MessageDisplay.Add("Selvisit tason!!! ");
144                Timer.SingleShot(1.5, taso2);
145            }
146        }
147    }
148    void painov()
149    {
150       if (mpainovoima > 0)
151        {
152           mpainovoima--;
153           MessageDisplay.Add("Painovoiman muutoksia jäljellä " + mpainovoima);
154            if (minne == "alas")
155            {
156                Gravity = new Vector(0, 0);
157                Gravity = new Vector(0, 1000);
158                minne = "ylös";
159            }
160            else
161            {
162                Gravity = new Vector(0, 0);
163                Gravity = new Vector(0, -1000);
164                minne = "alas";
165            }
166        }
167    }
168    void taso2()
169    {
170
171        minne = "alas";
172        Gravity = new Vector(0, -1000);
173        pelaaja1.Destroy();
174        TileMap kentta = TileMap.FromFile("kentta2.txt");
175        kentta['#'] = lisaaTaso;
176        kentta['*'] = lisaaTahti;
177        kentta['N'] = lisaaPelaaja;
178        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
179        Level.CreateBorders();
180        Level.Background.CreateGradient(Color.White, Color.LightGray);
181       
182        lisaaNappaimet();
183        painov();
184        Camera.Follow(pelaaja1);
185        Camera.ZoomFactor = 1.2;
186        Camera.StayInLevel = true;
187        tahtienmaara = 0;
188        mpainovoima = 5;
189        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
190
191    }
192 
193
194    public string minne { get; set; }
195
196    public object taso { get; set; }
197}
Note: See TracBrowser for help on using the repository browser.