source: 2015/27/TeemuH/JANOISTENSANKARI/JANOISTENSANKARI.cs @ 6650

Revision 6650, 5.9 KB checked in by tehamala, 4 years ago (diff)
RevLine 
[6650]1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class JANOISTENSANKARI : PhysicsGame
10{
11    const double nopeus = 250;
12    const double hyppyNopeus = 700;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("ValmisÄijä");
18    Image MehuKuva = LoadImage("Juice-31728_640");
19    Image pahiksenKuva = LoadImage("Sipsi valmis");
20    Image tausta = LoadImage("taustakuva");
21    Image platform = LoadImage("Tekstuuri4");
22
23    SoundEffect maaliAani = LoadSoundEffect("mahd");
24    SoundEffect taustamusa = LoadSoundEffect("Who Likes to Party");
25    SoundEffect kuolemisenAani = LoadSoundEffect("Kuolema");
26    SoundEffect hyppy = LoadSoundEffect("hyppy");
27
28
29    public override void Begin()
30    {
31        Gravity = new Vector(0, -1000);
32
33        LuoKentta();
34        LisaaNappaimet();
35        Musiikki();
36        Musiikki();
37        Camera.Follow(pelaaja1);
38        Camera.ZoomFactor = 1.2;
39        Camera.StayInLevel = true;
40        alkuValikko();
41       
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        TileMap kentta2 = TileMap.FromLevelAsset("kentta1");
52        kentta2.SetTileMethod('V', lisaavihollinen);
53        kentta2.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
54        Level.CreateBorders();
55        Level.Background.Image = tausta;
56        Level.Background.FitToLevel();
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.Image = platform;
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 = MehuKuva;
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        pelaaja1.Mass = 4.0;
82        pelaaja1.Image = pelaajanKuva;
83        pelaaja1.Size = pelaaja1.Size * 2;
84        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
85        AddCollisionHandler(pelaaja1, "pahis", TormaaVihuun);
86        Add(pelaaja1);
87    }
88
89    void LisaaNappaimet()
90    {
91        //Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
92        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
93
94        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
95        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
96        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
97
98        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
99
100        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
101        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
102        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
103
104        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
105    }
106
107    void Liikuta(PlatformCharacter hahmo, double nopeus)
108    {
109        hahmo.Walk(nopeus);
110    }
111
112    void Hyppaa(PlatformCharacter hahmo, double nopeus)
113    {
114        hahmo.Jump(nopeus);
115    }
116
117    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
118    {
119        maaliAani.Play();
120        MessageDisplay.Add("LÖYSIT MEHUN!!!!!");
121        tahti.Destroy();
122    }
123
124    void Musiikki()
125    {
126        MediaPlayer.Play("Who Likes to Party");
127        MediaPlayer.IsRepeating = true;
128    }
129
130    void lisaavihollinen(Vector paikka, double leveys, double korkeus)
131    {
132        PhysicsObject vihu = new PhysicsObject(leveys, korkeus);
133        vihu.Position = paikka;
134        vihu.Size = vihu.Size * 10;
135        vihu.Image = pahiksenKuva;
136        vihu.Tag = "pahis";
137        vihu.IgnoresCollisionResponse = true;
138        Add(vihu);
139
140        //PlatformWandererBrain vaelteluaivot = new PlatformWandererBrain();
141
142        //vaelteluaivot.JumpSpeed = 400.0;
143        //vaelteluaivot.Speed = 50.0;
144        //vaelteluaivot.TriesToJump = true;
145
146        //vihu.Brain = vaelteluaivot;
147        //vihu.Brain.Active = true;
148
149        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
150
151
152        seuraajanAivot.Speed = 100;
153        seuraajanAivot.DistanceFar = 600;
154        //seuraajanAivot.DistanceClose = 50;
155        //seuraajanAivot.StopWhenTargetClose = false;
156        //seuraajanAivot.FarBrain = vaelteluaivot;
157        vihu.Brain = seuraajanAivot;
158
159        Add(vihu);
160       
161
162    }
163
164    void TormaaVihuun(PhysicsObject pelaaja1, PhysicsObject vihu)
165    {
166        pelaaja1.Destroy();
167        kuolemisenAani.Play();
168        Label tekstikentta = new Label("R.I.P hävisit pelin");
169        Add(tekstikentta);
170
171    }
172
173    void alkuValikko()
174    {
175        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Ohjeet", "Lopeta peli");
176        Add(alkuValikko);
177        alkuValikko.AddItemHandler(0, AloitaPeli);
178        alkuValikko.AddItemHandler(1, Ohjeet);
179        alkuValikko.AddItemHandler(2, Exit);
180       
181    }
182
183    void AloitaPeli()
184    { 
185   
186    }
187
188    void Ohjeet()
189    { 
190   
191    }
192
193
194   
195
196   
197} 
198
199
200 
Note: See TracBrowser for help on using the repository browser.