source: 2015/27/JimiS/tasohyppely/hyppely/hyppely/hyppely/hyppely.cs @ 6572

Revision 6572, 4.6 KB checked in by jivesuor, 4 years ago (diff)

Tasohyppelyyn lisätty mm. elämät.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class hyppely : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PhysicsObject alaReuna;
16 
17
18    PlatformCharacter pelaaja1;
19
20    Image pelaajanKuva = LoadImage("pelaaja");
21    Image tahtiKuva = LoadImage("tahti");
22
23    IntMeter pelaajan1Elamat;
24
25    Vector pelaajanaloituspaikka;
26   
27
28    SoundEffect maaliAani = LoadSoundEffect("maali");
29
30    public override void Begin()
31    {
32        Gravity = new Vector(0, -1000);
33
34        LuoKentta();
35        LisaaNappaimet();
36
37        AddCollisionHandler(pelaaja1, alaReuna, KasittelePelaajanPutoaminen);
38
39        Camera.Follow(pelaaja1);
40        Camera.ZoomFactor = 1.0;
41        Camera.StayInLevel = true;
42    }
43
44    void LuoKentta()
45    {
46        TileMap kentta = TileMap.FromLevelAsset("kentta1");
47        kentta.SetTileMethod('#', LisaaTaso);
48        kentta.SetTileMethod('*', LisaaTahti);
49        kentta.SetTileMethod('N', LisaaPelaaja);
50        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
51       
52     
53        alaReuna = Level.CreateBottomBorder();
54        alaReuna.Restitution = 1.0;
55        alaReuna.IsVisible = false;
56        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
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 LisaaTahti(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        tahti.IgnoresCollisionResponse = true;
71        tahti.Position = paikka;
72        tahti.Image = tahtiKuva;
73        tahti.Tag = "tahti";
74        Add(tahti);
75    }
76
77    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
78    {
79        pelaaja1 = new PlatformCharacter(leveys, korkeus);
80        pelaaja1.Position = paikka;
81        pelaajanaloituspaikka = paikka;
82        pelaaja1.Mass = 4.0;
83        pelaaja1.Image = pelaajanKuva;
84        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
85        Add(pelaaja1);
86
87        pelaajan1Elamat = new IntMeter(3);
88        pelaajan1Elamat.MaxValue = 20;
89        Label naytto = new Label();
90        naytto.BindTo(pelaajan1Elamat);
91       
92        naytto.Y += pelaaja1.Height;
93        naytto.TextColor = Color.Black;
94        naytto.BorderColor = Color.Black;
95        naytto.Color = Color.White;
96        naytto.Size *= 0.5;
97        naytto.TextScale = new Vector(0.5, 0.5);
98        pelaaja1.Add(naytto);
99    }
100
101    void KasittelePelaajanPutoaminen(PhysicsObject pelaaja1, PhysicsObject kohde)
102    {
103 
104            pelaajan1Elamat.Value -= 1;
105
106            pelaaja1.Position = pelaajanaloituspaikka;
107
108            if (pelaajan1Elamat == 0)
109            {
110                MessageDisplay.Add("Pelaaja 1 hävisi pelin.");
111                Exit();
112            }
113       
114    }
115
116   
117
118    void LisaaNappaimet()
119    {
120        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
121        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
122
123        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
124        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
125        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
126
127        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
128
129        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
130        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
131        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
132
133        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
134    }
135
136    void Liikuta(PlatformCharacter hahmo, double nopeus)
137    {
138        hahmo.Walk(nopeus);
139    }
140
141    void Hyppaa(PlatformCharacter hahmo, double nopeus)
142    {
143        hahmo.Jump(nopeus);
144    }
145
146    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
147    {
148        maaliAani.Play();
149        MessageDisplay.Add("Keräsit tähden!");
150        tahti.Destroy();
151    }
152}
Note: See TracBrowser for help on using the repository browser.