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

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