source: 2012/27/LeeviN/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 3555

Revision 3555, 5.3 KB checked in by Lenatri, 9 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("norsu");
18    Image tahtiKuva = LoadImage("tahti");
19
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21
22    public override void Begin()
23    {
24        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
25            "Aloita peli","Tasot", "Parhaat pisteet", "Lopeta");
26        Add(alkuValikko);
27        alkuValikko.ItemSelected += PainettiinValikonNappia;
28
29        MediaPlayer.Play("taustamusiikki");
30        Gravity = new Vector(0, -1000);
31
32        LuoKentta();
33        LisaaNappaimet();
34
35        Camera.Follow(pelaaja1);
36        Camera.ZoomFactor = 1.2;
37        Camera.StayInLevel = true;
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('p', LisaaOrkki);
47        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
48        Level.CreateBorders();
49        Level.Background.CreateGradient(Color.White, Color.Black);
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
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 PlatformCharacter(leveys, korkeus);
73        pelaaja1.Position = paikka;
74        pelaaja1.Mass = 4.0;
75        pelaaja1.Image = pelaajanKuva;
76        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
77        Add(pelaaja1);
78        pelaaja1.Weapon = new PlasmaCannon(20, 5);
79        pelaaja1.Weapon.InfiniteAmmo = true;
80    }
81
82    void LisaaOrkki(Vector paikka, double leveys, double korkeus)
83    {
84        PlatformCharacter orkki = new PlatformCharacter(leveys, korkeus);
85        orkki.Position = paikka;
86        orkki.Mass = 4.0;
87        //orkki.Image =Orkinkuva;
88        Add(orkki);
89
90        orkki.Tag = "orkki";
91
92        FollowerBrain seuraajaAivot = new FollowerBrain(pelaaja1);
93        orkki.Brain = seuraajaAivot;
94        seuraajaAivot.Speed = 1000;
95    }
96
97    void AmmuAseella()
98    {
99        PhysicsObject ammus = pelaaja1.Weapon.Shoot();
100
101        if (ammus != null)
102        {
103            ammus.Size *= 3;
104            AddCollisionHandler(ammus, "orkki", CollisionHandler.ExplodeTarget(50, true));
105        }
106    }
107
108
109    void LisaaNappaimet()
110    {
111        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu");
112
113        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
114        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
115        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
116
117        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
118        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
119        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
120
121        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
122
123        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
124        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
125        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
126
127        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
128    }
129
130    void Liikuta(PlatformCharacter hahmo, double nopeus)
131    {
132        hahmo.Walk(nopeus);
133    }
134
135    void Hyppaa(PlatformCharacter hahmo, double nopeus)
136    {
137        hahmo.Jump(nopeus);
138    }
139
140    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
141    {
142        maaliAani.Play();
143        MessageDisplay.Add("Keräsit Tähden!");
144        tahti.Destroy();
145
146    }
147    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
148    {
149        ammus.Destroy();
150        kohde.Destroy();
151        Explosion rajahdys = new Explosion(10);
152        rajahdys.Position = ammus.Position;
153        Add(rajahdys);
154
155    }
156    void PainettiinValikonNappia(int valinta)
157    {
158        switch (valinta)
159        {
160            case 0:
161                // AloitaPeli();
162                break;
163            case 1:
164                // ParhaatPisteet();
165                break;
166            case 2:
167                Exit();
168                break;
169        }
170    } 
171
172}
Note: See TracBrowser for help on using the repository browser.