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

Revision 6591, 5.7 KB checked in by jivesuor, 4 years ago (diff)

Tasohyppelyyn lisätty viholliset.

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