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

Revision 6580, 4.9 KB checked in by jivesuor, 4 years ago (diff)

Tasohyppelyyn lisätty uusi palikka.

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.SetTileMethod('A', LisaaPalikka);
51        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
52       
53     
54        alaReuna = Level.CreateBottomBorder();
55        alaReuna.Restitution = 1.0;
56        alaReuna.IsVisible = false;
57        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
58    }
59
60    void LisaaPalikka(Vector paikka, double leveys, double korkeus)
61    {
62        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
63        palikka.Position = paikka;
64        palikka.Color = Color.Black;
65        Add(palikka);
66    }
67
68    void LisaaTaso(Vector paikka, double leveys, double korkeus)
69    {
70        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
71        taso.Position = paikka;
72        taso.Color = Color.Green;
73        Add(taso);
74    }
75
76    void LisaaTahti(Vector paikka, double leveys, double korkeus)
77    {
78        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
79        tahti.IgnoresCollisionResponse = true;
80        tahti.Position = paikka;
81        tahti.Image = tahtiKuva;
82        tahti.Tag = "tahti";
83        Add(tahti);
84    }
85
86    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
87    {
88        pelaaja1 = new PlatformCharacter(leveys, korkeus);
89        pelaaja1.Position = paikka;
90        pelaajanaloituspaikka = paikka;
91        pelaaja1.Mass = 4.0;
92        pelaaja1.Image = pelaajanKuva;
93        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
94        Add(pelaaja1);
95
96        pelaajan1Elamat = new IntMeter(3);
97        pelaajan1Elamat.MaxValue = 20;
98        Label naytto = new Label();
99        naytto.BindTo(pelaajan1Elamat);
100       
101        naytto.Y += pelaaja1.Height;
102        naytto.TextColor = Color.Black;
103        naytto.BorderColor = Color.Black;
104        naytto.Color = Color.White;
105        naytto.Size *= 0.5;
106        naytto.TextScale = new Vector(0.5, 0.5);
107        pelaaja1.Add(naytto);
108    }
109
110    void KasittelePelaajanPutoaminen(PhysicsObject pelaaja1, PhysicsObject kohde)
111    {
112 
113            pelaajan1Elamat.Value -= 1;
114
115            pelaaja1.Position = pelaajanaloituspaikka;
116
117            if (pelaajan1Elamat == 0)
118            {
119                MessageDisplay.Add("Pelaaja 1 hävisi pelin.");
120                Exit();
121            }
122       
123    }
124
125   
126
127    void LisaaNappaimet()
128    {
129        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
130        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
131
132        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
133        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
134        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
135
136        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
137
138        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
139        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
140        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
141
142        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
143    }
144
145    void Liikuta(PlatformCharacter hahmo, double nopeus)
146    {
147        hahmo.Walk(nopeus);
148    }
149
150    void Hyppaa(PlatformCharacter hahmo, double nopeus)
151    {
152        hahmo.Jump(nopeus);
153    }
154
155    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
156    {
157        maaliAani.Play();
158        MessageDisplay.Add("Keräsit tähden!");
159        tahti.Destroy();
160    }
161}
Note: See TracBrowser for help on using the repository browser.