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

Revision 1736, 7.1 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    Image pelaajanKuva2 = LoadImage("norsu2");
19    Image pelaajanKuva3 = LoadImage("norsu3");
20    Image pelaajanKuva4 = LoadImage("norsu4");
21    Image tahtiKuva = LoadImage("tahti");
22
23    int tahtienmaara = 0;
24
25    SoundEffect maaliAani = LoadSoundEffect("maali");
26
27   
28    public override void Begin()
29    {
30        Gravity = new Vector(0, -1000);
31
32
33        minne = "alas";
34        luoKentta();
35        lisaaNappaimet();
36
37        NappaimetAlas();
38        Camera.Follow(pelaaja1);
39        Camera.ZoomFactor = 1.2;
40        Camera.StayInLevel = true;
41        MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
42    }
43
44    void luoKentta()
45    {
46        TileMap kentta = TileMap.FromFile("kentta1.txt");
47        kentta['#'] = lisaaTaso;
48        kentta['*'] = lisaaTahti;
49        kentta['N'] = lisaaPelaaja;
50        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
51        Level.CreateBorders();
52        Level.Background.CreateGradient(Color.White, Color.LightGray);
53    }
54
55    PhysicsObject lisaaTaso()
56    {
57        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
58        taso.Color = Color.DarkGray;
59        return taso;
60    }
61
62    PhysicsObject lisaaTahti()
63    {
64        PhysicsObject tahti = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
65        tahti.Image = tahtiKuva;
66        tahti.Tag = "tahti";
67        return tahti;
68    }
69
70    PhysicsObject lisaaPelaaja()
71    {
72        pelaaja1 = new PhysicsObject (40, 40, Shape.Circle);
73        pelaaja1.Mass = 4.0;
74        pelaaja1.Image = pelaajanKuva;
75        pelaaja1.Restitution = 0.5;
76        pelaaja1.CanRotate = false;
77       
78        AddCollisionHandler(pelaaja1, osuTahteen);
79        return pelaaja1;
80    }
81
82    void lisaaNappaimet()
83    {
84        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
85        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
86        //Keyboard.Listen(Key.A, ButtonState.Pressed, painovoima, "Painovoima vasemmalle",new Vector(-1000, 0), "vasen");
87        //Keyboard.Listen(Key.W, ButtonState.Pressed, painovoima, "Painovoima ylös", new Vector(0, 1000), "ylös");
88        //Keyboard.Listen(Key.D, ButtonState.Pressed, painovoima, "Painovoima oikealle", new Vector(1000, 0), "oikea");
89        //Keyboard.Listen(Key.S, ButtonState.Pressed, painovoima, "Painovoima alas", new Vector(0, -1000), "alas");
90        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
91        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
92        Keyboard.Listen(Key.Space, ButtonState.Pressed, painov, "Pelaaja hyppää");
93
94        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
95
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    void NappaimetAlas()
102    {
103        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
104        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
105        Keyboard.Listen(Key.Space, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
106    }
107    void NappaimetYlos()
108    {
109        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
110        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
111        Keyboard.Listen(Key.Space, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
112    }
113    void NappaimetOikea()
114    {
115        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu alas", pelaaja1, -nopeus);
116        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu ylös", pelaaja1, nopeus);
117        Keyboard.Listen(Key.Space, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
118    }
119    void NappaimetVasen()
120    {
121        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu ylös", pelaaja1, -nopeus);
122        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu alas", pelaaja1, nopeus);
123        Keyboard.Listen(Key.Space, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
124    }
125
126    void liikuta(PhysicsObject hahmo, double nopeus)
127    {
128        //hahmo.Walk(nopeus);
129        if (hahmo.Velocity.Magnitude < 200)
130        {
131            if (minne == "alas")
132            {
133
134                hahmo.Hit(new Vector(nopeus, 0));
135
136            }
137            if (minne == "ylös")
138            {
139                hahmo.Hit(new Vector(nopeus, 0));
140            }
141            if (minne == "oikea")
142            {
143                hahmo.Hit(new Vector(0, nopeus));
144            }
145            if (minne == "vasen")
146            {
147                hahmo.Hit(new Vector(0, nopeus));
148            }
149        }
150    }
151
152
153    void hyppaa(PhysicsObject hahmo, double nopeus)
154    {
155        //hahmo.Jump(nopeus);
156        //hahmo.Hit(new Vector(0, nopeus));
157        hahmo.Hit(-Gravity);
158
159       
160    }
161
162    void painovoima(Vector suunta, string minne)
163    {
164        Gravity = suunta;
165        if (minne == "ylös")
166        {
167            NappaimetYlos();
168            pelaaja1.Image = pelaajanKuva3;
169         }
170        if (minne == "alas")
171        {
172            NappaimetAlas();
173            pelaaja1.Image = pelaajanKuva;
174           
175        }
176        if (minne == "oikea")
177        {
178            NappaimetOikea();
179            pelaaja1.Image = pelaajanKuva2;
180           
181        }
182        if (minne == "vasen")
183        {
184            NappaimetVasen();
185            pelaaja1.Image = pelaajanKuva4;
186           
187        }
188       
189    }
190
191    void osuTahteen(PhysicsObject hahmo, PhysicsObject kohde)
192    {
193        if (kohde.Tag.ToString() == "tahti")
194        {
195
196            maaliAani.Play();
197            tahtienmaara++;
198            MessageDisplay.Add("Olet kerännyt " + tahtienmaara + " / 3 tähteä");
199            kohde.Destroy();
200            if (tahtienmaara == 3)
201            {
202                MessageDisplay.Add("Selvit tason!!! ");
203            }
204        }
205    }
206    void painov()
207    {
208        if (minne == "alas")
209        {
210            Gravity = new Vector(0, 1000);
211            minne = "ylös";
212        }
213        else
214        {
215            Gravity = new Vector(0, -1000);
216            minne = "alas";
217        }
218    }
219 
220
221    public string minne { get; set; }
222}
Note: See TracBrowser for help on using the repository browser.