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

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