source: 2015/27/AnttiV/Tasohyppelypeli2/Tasohyppelypeli2/Tasohyppelypeli2/Tasohyppelypeli2.cs @ 6574

Revision 6574, 4.1 KB checked in by misakana, 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
12    const double nopeus = 400;
13    const double hyppyNopeus = 350;
14    const int RUUDUN_KOKO = 60;
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("auto");
19    Image vihuKuva = LoadImage("vihu");
20    Image piikkiKuva = LoadImage("piikki");
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24    public override void Begin()
25    {
26         Image taustaKuva = LoadImage("background-city");
27       
28
29        Gravity = new Vector(0, -1000);
30
31        LuoKentta();
32        LisaaNappaimet();
33
34        Camera.Follow(pelaaja1);
35        Camera.ZoomFactor = 1.2;
36        Camera.StayInLevel = true;
37    }
38
39    void LuoKentta()
40    {
41        TileMap kentta = TileMap.FromLevelAsset("kentta1");
42        kentta.SetTileMethod('#', LisaaTaso);
43        kentta.SetTileMethod('*', LisaaVihu);
44        kentta.SetTileMethod('N', LisaaPelaaja);
45        kentta.SetTileMethod('P', LisaaPiikki);
46        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
47        Level.CreateBorders();
48    }
49
50    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
51    {
52        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
53        taso.Position = paikka;
54        taso.Color = Color.Red;
55        Add(taso);
56        taso.Image = piikkiKuva;
57    }
58
59    void LisaaTaso(Vector paikka, double leveys, double korkeus)
60    {
61        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        taso.Position = paikka;
63        taso.Color = Color.Green;
64        Add(taso);
65    }
66
67    void LisaaVihu(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject vihu = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        vihu.IgnoresCollisionResponse = true;
71        vihu.Position = paikka;
72        vihu.Image = vihuKuva;
73        vihu.Tag = "vihu";
74        Add(vihu);
75    }
76
77    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
78    {
79        pelaaja1 = new PlatformCharacter(leveys, korkeus);
80        pelaaja1.Position = paikka;
81        pelaaja1.Mass = 4.0;
82        pelaaja1.Image = pelaajanKuva;
83        AddCollisionHandler(pelaaja1, "vihu", TormaaVihuun);
84        Add(pelaaja1);
85    }
86
87    void LisaaNappaimet()
88    {
89        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
90        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
91
92        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
93        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
94        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
95
96        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
97
98        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
99        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
100        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
101
102        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
103    }
104
105    void Liikuta(PlatformCharacter hahmo, double nopeus)
106    {
107        hahmo.Walk(nopeus);
108    }
109
110    void Hyppaa(PlatformCharacter hahmo, double nopeus)
111    {
112        hahmo.Jump(nopeus);
113    }
114
115    void TormaaVihuun(PhysicsObject hahmo, PhysicsObject vihu)
116    {
117        maaliAani.Play();
118        MessageDisplay.Add("Voitit Pelin");
119        vihu.Destroy();
120        Explosion rajahdys = new Explosion(300);
121        rajahdys.Position = vihu.Position;
122        Add(rajahdys);
123        rajahdys.Speed = 350.0;
124        rajahdys.Force = 10000;
125        rajahdys.ShockwaveColor = Color.Yellow;
126        rajahdys.ShockwaveColor = new Color(255, 0, 150, 90);
127        pelaaja1.IgnoresExplosions = true;
128    }
129   
130}
Note: See TracBrowser for help on using the repository browser.