source: 2015/24/UunoT/Tasohyppelypeli2/Tasohyppelypeli2/Tasohyppelypeli2/Tasohyppelypeli2.cs @ 5946

Revision 5946, 5.2 KB checked in by empaheik, 5 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 Tasohyppelypeli2 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const double kiipeaNopeus = 250;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("norsu");
19    Image tahtiKuva = LoadImage("tahti");
20    Image naamakuva = LoadImage ("Untitled");
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24    public override void Begin()
25    {
26        Gravity = new Vector(0, -1000);
27
28        LuoKentta();
29        LisaaNappaimet();
30       
31       
32
33        Camera.Follow(pelaaja1);
34        Camera.ZoomFactor = 1.2;
35        Camera.StayInLevel = true;
36    }
37   
38
39    void LuoKentta()
40    {
41        TileMap kentta = TileMap.FromLevelAsset("kentta1");
42        kentta.SetTileMethod('#', LisaaTaso);
43        //kentta.SetTileMethod('*', LisaaTahti);
44        kentta.SetTileMethod('N', LisaaPelaaja);
45        //kentta.SetTileMethod('T', LisaaTikkaat);
46        //kentta.SetTileMethod('p', spawneri);
47        //kentta.SetTileMethod('b', LuoNaama);
48        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
49        Level.CreateBorders();
50        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
51    }
52
53    void LisaaTaso(Vector paikka, double leveys, double korkeus)
54    {
55        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
56        taso.Position = paikka;
57        taso.Color = Color.Green;
58        Add(taso);
59    }
60    //void LisaaTikkaat(Vector paikka, double leveys, double korkeus)
61    //{
62    //    PhysicsObject tikkaat = PhysicsObject.CreateStaticObject(leveys, korkeus);
63    //    tikkaat.IgnoresCollisionResponse = true;
64    //    tikkaat.Tag = "tikkaat";
65    //    tikkaat.Position = paikka;
66    //    Add(tikkaat);
67    //}
68
69    //void LisaaTahti(Vector paikka, double leveys, double korkeus)
70    //{
71    //    PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
72    //    tahti.IgnoresCollisionResponse = true;
73    //    tahti.Position = paikka;
74    //    tahti.Image = tahtiKuva;
75    //    tahti.Tag = "tahti";
76    //    Add(tahti);
77    //}
78
79    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
80    {
81        pelaaja1 = new PlatformCharacter(leveys, korkeus);
82        pelaaja1.Position = paikka;
83        pelaaja1.Tag = "pelaaja";
84        pelaaja1.Mass = 4.0;
85        pelaaja1.Image = pelaajanKuva;
86        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
87        //AddCollisionHandler(pelaaja1, "tikkaat", Kiipea);
88        Add(pelaaja1);
89    }
90    void Guy (Vector paikka, double leveys, double korkeus)
91    {
92      PhysicsObject guy = PhysicsObject.CreateStaticObject(leveys, korkeus);
93     
94       
95       
96      Add(guy);
97    }
98    void LisaaNappaimet()
99    {
100        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
101        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
102
103        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
104        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
105        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
106
107        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
108
109        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
110        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
111        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
112       
113        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
114    }
115
116    void Liikuta(PlatformCharacter hahmo, double nopeus)
117    {
118        hahmo.Walk(nopeus);
119    }
120
121    void Hyppaa(PlatformCharacter hahmo, double nopeus)
122    {
123        hahmo.Jump(nopeus);
124    }
125
126    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
127    {
128        maaliAani.Play();
129        MessageDisplay.Add("Keräsit tähden!");
130        tahti.Destroy();
131    }
132   
133   
134
135   
136   //void Kiipea(PhysicsObject hahmo, PhysicsObject tikkaat)
137    //{
138       //hahmo.IgnoresPhysicsLogics = true;
139        //hahmo.MoveTo(new Vector(hahmo.X, tikkaat.Top), 100);
140
141        //if (Keyboard.IsAltDown())
142        //{
143
144           
145          //  hahmo.Push(new Vector(0, 100000));
146        //}
147    //}
148    void LuoNaama(Vector paikka)
149    {
150        PhysicsObject naama = new PhysicsObject (50, 50);
151        naama.Position = new Vector();
152        naama.Shape = Shape.Circle;
153        naama.Image =naamakuva;
154        naama.Brain = new FollowerBrain(pelaaja1);
155        paikka = new Vector(0, 0);
156        Add (naama);
157    }
158
159    //void spawneri(Vector paikka, double leveys, double korkeus)
160    //{
161    //    Timer kutsuja = new Timer();
162    //    kutsuja.Interval = 0.25;
163    //    kutsuja.Timeout += delegate { LuoNaama(paikka); };
164    //    kutsuja.Start();
165    //}
166}
Note: See TracBrowser for help on using the repository browser.