source: 2016/27/AnttiN/SalainenTehtävä/SalainenTehtävä/SalainenTehtävä/SalainenTehtävä.cs @ 7796

Revision 7796, 4.5 KB checked in by karkaite, 3 years ago (diff)

Ensimmäinen taso aloitettu

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class SalainenTehtävä : PhysicsGame
10{
11    const double nopeus = 2000;
12
13    const int RUUDUN_KOKO = 40;
14
15    PhysicsObject pelaaja1;
16
17    Image pelaajanKuva = LoadImage("Hahmo");
18    Image tahtiKuva = LoadImage("tahti");
19    Image kovaKuutio = LoadImage("kovaKuutio");
20    Image LaskeutuminenKuva = LoadImage("Laskeutuminen");
21    Image SahkoansaKuva = LoadImage("Sähköansa");
22    Image SahkoansaTykkiKuva = LoadImage("SahkoansaTykki");
23
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25
26    public override void Begin()
27    {
28
29        LuoKentta();
30        LisaaNappaimet();
31
32        Camera.Follow(pelaaja1);
33        Camera.ZoomFactor = 1.2;
34        Camera.StayInLevel = true;
35    }
36
37    void LuoKentta()
38    {
39        TileMap kentta = TileMap.FromLevelAsset("kentta1");
40        kentta.SetTileMethod('#', LisaaTaso);
41        kentta.SetTileMethod('*', LisaaTahti);
42        kentta.SetTileMethod('N', LisaaPelaaja);
43        kentta.SetTileMethod('L', LisaaLaskeutuminen);
44        //kentta.SetTileMethod('S', LisaaSahkoansa);
45        kentta.SetTileMethod('A', LisaaSahkoansaTykki);
46        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
47        Level.CreateBorders();
48        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
49        Level.Background.Image = LoadImage("kiviseina");
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.Image = kovaKuutio;
57        Add(taso);
58    }
59
60    void LisaaTahti(Vector paikka, double leveys, double korkeus)
61    {
62        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
63        tahti.IgnoresCollisionResponse = true;
64        tahti.Position = paikka;
65        tahti.Image = tahtiKuva;
66        tahti.Tag = "tahti";
67        Add(tahti);
68    }
69
70    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
71    {
72        pelaaja1 = new PhysicsObject(leveys, korkeus);
73        pelaaja1.Position = paikka;
74        pelaaja1.Mass = 4.0;
75        pelaaja1.Image = pelaajanKuva;
76        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
77        AddCollisionHandler(pelaaja1, "Laskeutuminen", TormaaLaskeutumiseen);
78        Add(pelaaja1);
79        pelaaja1.LinearDamping = 0.9;
80        pelaaja1.CanRotate = false;
81    }
82
83    void LisaaLaskeutuminen(Vector paikka, double leveys, double korkeus)
84    {
85        PhysicsObject Laskeutuminen = PhysicsObject.CreateStaticObject(leveys, korkeus);
86        Laskeutuminen.IgnoresCollisionResponse = true;
87        Laskeutuminen.Position = paikka;
88        Laskeutuminen.Image = LaskeutuminenKuva;
89        Laskeutuminen.Tag = "Laskeutuminen";
90        Add(Laskeutuminen);
91    }
92
93    void LisaaSahkoansaTykki(Vector paikka, double leveys, double korkeus)
94    {
95        PhysicsObject Sahkoansa = PhysicsObject.CreateStaticObject(leveys, korkeus);
96        Sahkoansa.Position = paikka;
97        Sahkoansa.Image = SahkoansaTykkiKuva;
98        Sahkoansa.Tag = "SahkoansaTykki";
99        Add(Sahkoansa);
100
101    }
102
103    void LisaaNappaimet()
104    {
105        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
106        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
107
108        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, new Vector(-nopeus, 0));
109        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, new Vector(nopeus, 0));
110        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Pelaaja liikkuu ylöspäin", pelaaja1, new Vector(0, nopeus));
111        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "pelaaja liikkuu alaspäin", pelaaja1, new Vector(0, -nopeus));
112
113
114        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
115
116
117
118        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
119    }
120
121    void Liikuta(PhysicsObject hahmo, Vector nopeus)
122    {
123        hahmo.Push(nopeus);
124    }
125
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    void TormaaLaskeutumiseen(PhysicsObject hahmo, PhysicsObject Laskeutuminen)
136    {
137    MessageDisplay.Add("Läpäisit tason");
138
139    }
140
141}
Note: See TracBrowser for help on using the repository browser.