source: 2015/30/JenniN/Karkuunomapeli/Karkuunomapeli/Karkuunomapeli/Karkuunomapeli.cs @ 6872

Revision 6872, 4.5 KB checked in by jupipana, 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 Karkuunomapeli : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14     
15 
16    PlatformCharacter pelaaja1;
17
18    //Image pelaajanKuva = LoadImage("norsu");
19    //Image tahtiKuva = LoadImage("tahti");
20    Image taustaKuva = LoadImage("taustakuva");
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        Camera.Follow(pelaaja1);
33        Camera.ZoomFactor = 1.2;
34        Camera.StayInLevel = true;
35
36        Level.Background.Image = taustaKuva;
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('K', LisaaEste);
47       
48        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
49        Level.CreateBorders();
50        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
51    }
52   
53
54
55    //Tasot, joiden päälle voi hyppiä.
56    void LisaaTaso(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
59        taso.Position = paikka;
60        taso.Color = Color.PaintDotNetMagenta;
61        Add(taso);
62    }
63
64 
65
66
67
68
69    //Namut, jotka pitää napata.
70    void LisaaTahti(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        tahti.IgnoresCollisionResponse = true;
74        tahti.Position = paikka;
75        tahti.Shape = Shape.Ellipse;
76        tahti.Color = Color.SpringGreen;
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.Mass = 4.0;
86        pelaaja1.Shape = Shape.Diamond;
87        pelaaja1.Color = Color.HanPurple;
88        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
89        AddCollisionHandler(pelaaja1, "este", TormaaEsteeseen);
90
91        Add(pelaaja1);
92    }
93
94
95
96
97    //Esteet, joita täytyy varoa.
98    void LisaaEste(Vector paikka, double leveys, double korkeus)
99    {
100        PhysicsObject este = PhysicsObject.CreateStaticObject(leveys, korkeus);
101        este.Shape = Shape.Hexagon;
102        este.Position = paikka;
103        este.Color = Color.YellowGreen;
104        este.Tag = "este";
105        Add(este);
106
107    }
108
109    void LisaaNappaimet()
110    {
111        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
112        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
113
114        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
115        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
116        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
117
118        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
119
120        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
121        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
122        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
123
124        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
125    }
126
127    void Liikuta(PlatformCharacter hahmo, double nopeus)
128    {
129        hahmo.Walk(nopeus);
130    }
131
132    void Hyppaa(PlatformCharacter hahmo, double nopeus)
133    {
134        hahmo.Jump(nopeus);
135    }
136
137    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
138    {
139        maaliAani.Play();
140        MessageDisplay.Add("Keräsit tähden!");
141        tahti.Destroy();
142    }
143
144    void TormaaEsteeseen(PhysicsObject hahmo, PhysicsObject este)
145    {
146        Explosion rajahdys = new Explosion(100);
147        rajahdys.Position = hahmo.Position;
148        Add(rajahdys);
149        hahmo.Destroy();
150
151        Label tekstikentta = new Label("HÄVISIT!");
152        Add(tekstikentta);
153
154       
155    }
156
157 
158 
159
160 
161}
Note: See TracBrowser for help on using the repository browser.