source: 2015/26/SamuH/AwesomeGuest/AwesomeGuest/AwesomeGuest/AwesomeGuest.cs @ 6473

Revision 6473, 8.5 KB checked in by samkasha, 8 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 AwesomeGuest : PhysicsGame
10{
11    const double nopeus = 300;
12    const double hyppyNopeus = 750;//750 norm
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    Image nappikuva = LoadImage("nappi");
17    Image vpiikkikuva = LoadImage("vpiikit");
18    Image tiilikuva = LoadImage("tiili");
19    Image piikkikuva = LoadImage("piikit");
20    Image telelapionkuva = LoadImage("telelapio");
21    Image rikkalapionkuva = LoadImage("rikkalapio");
22    Image pizzalapiokuva = LoadImage("pizzalapio");
23    Image fiskarskuva = LoadImage("fiskars");
24    Image lapionkuva = LoadImage("lapio");
25    Image klkuva = LoadImage("kenttälapio");
26    Image pelaajanKuva = LoadImage("awesome");
27    Image tahtiKuva = LoadImage("tahti");
28
29    SoundEffect maaliAani = LoadSoundEffect("maali");
30   
31
32    public override void Begin()
33    {
34        IsFullScreen = true;
35        AloitaKenttaAlusta();
36    }
37    void AloitaKenttaAlusta()
38    {
39        ClearAll();
40        Gravity = new Vector(0, -1200);
41
42        LuoKentta();
43        LisaaNappaimet();
44
45        Camera.Follow(pelaaja1);
46        Camera.ZoomFactor = 1.2;
47        Camera.StayInLevel = true;
48    }
49    void LuoKentta() 
50    {
51        TileMap kentta = TileMap.FromLevelAsset("kentta1");
52        kentta.SetTileMethod('n', Lisaanappi);
53        kentta.SetTileMethod('F', LisaaFplokki);
54        kentta.SetTileMethod('v', LisaaVpiikit);
55        kentta.SetTileMethod('s', Lisaapiikit);
56        kentta.SetTileMethod('t', Lisaatelelapio);
57        kentta.SetTileMethod('r', Lisaarikkalapio);
58        kentta.SetTileMethod('#', LisaaTaso);
59        kentta.SetTileMethod('*', LisaaTahti);
60        kentta.SetTileMethod('N', LisaaPelaaja);
61        kentta.SetTileMethod('l', Lisaalapio);
62        kentta.SetTileMethod('k', Lisaakenttälapio);
63        kentta.SetTileMethod('f', Lisaafiskars);
64        kentta.SetTileMethod('p', Lisaapizzalapio);
65        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
66        Level.CreateBorders();
67        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
68    }
69
70    void LisaaTaso(Vector paikka, double leveys, double korkeus)
71    {
72        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
73        taso.Position = paikka;
74        taso.Color = Color.Green;
75        taso.Image = tiilikuva;
76        Add(taso);
77        SmoothTextures = false;
78    }
79
80    void LisaaTahti(Vector paikka, double leveys, double korkeus)
81    {
82        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
83        tahti.IgnoresCollisionResponse = true;
84        tahti.Position = paikka;
85        tahti.Image = tahtiKuva;
86        tahti.Tag = "tahti";
87        Add(tahti);
88    }
89
90
91    void LisaaFplokki(Vector paikka, double leveys, double korkeus)
92    {
93        PhysicsObject plokki = PhysicsObject.CreateStaticObject(leveys, korkeus);
94        plokki.IgnoresCollisionResponse = true;
95        plokki.Position = paikka;
96        plokki.Image = tiilikuva;
97        plokki.Tag = "plokki";
98        Add(plokki);
99    }
100
101    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
102    {
103        pelaaja1 = new PlatformCharacter(leveys, korkeus);
104        pelaaja1.Position = paikka;
105        pelaaja1.Mass = 4.0;
106        pelaaja1.Image = pelaajanKuva;
107        AddCollisionHandler(pelaaja1, "piikit", tormaapiikkeihin);
108        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
109        pelaaja1.CanRotate = true;
110        Add(pelaaja1);
111    }
112
113    void LisaaNappaimet()
114    {
115        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
116        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
117
118        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
119        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
120        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
121
122        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
123
124        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
125        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
126        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
127
128        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
129    }
130
131    void Liikuta(PlatformCharacter hahmo, double nopeus)
132    {
133        hahmo.Walk(nopeus);
134    }
135
136    void Hyppaa(PlatformCharacter hahmo, double nopeus)
137    {
138        hahmo.Jump(nopeus);
139    }
140
141    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
142    {
143        maaliAani.Play();
144        MessageDisplay.Add("Sussiunakkoon!");
145        tahti.Destroy();
146    }
147    void Lisaalapio(Vector paikka, double leveys, double korkeus)
148    {
149        PlatformCharacter lapio = new PlatformCharacter(75.0, 240.0);
150        lapio.Image = lapionkuva;
151        lapio.Position = paikka + new Vector(0, lapio.Height/2);
152        Add(lapio);
153        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
154        tasoAivot.Speed = 100;
155        lapio.Brain = tasoAivot;
156    } 
157    void Lisaakenttälapio (Vector paikka, double leveys, double korkeus)
158    {
159        PlatformCharacter lapio = new PlatformCharacter(30.0, 60.0);
160        lapio.Image = klkuva;
161        lapio.Position = paikka + new Vector(0, korkeus);
162        lapio.Tag = ("lapio");
163        Add(lapio);
164        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
165        tasoAivot.Speed = 100;
166        lapio.Brain = tasoAivot;
167}
168    void Lisaafiskars (Vector paikka, double leveys, double korkeus)
169    {
170        PhysicsObject fiskars = new PhysicsObject(leveys*2.8, korkeus * 4.0);
171        fiskars.Image = fiskarskuva;
172        fiskars.Position = paikka + new Vector(0, korkeus);
173        Add(fiskars);
174       // RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
175       // satunnaisAivot.ChangeMovementSeconds = 3;
176      ;  //fiskars.Brain = satunnaisAivot;
177     // satunnaisAivot.Speed = 600;
178    }
179    void Lisaapizzalapio(Vector paikka, double leveys, double korkeus)
180    {
181        PhysicsObject pizzalapio = new PhysicsObject(leveys * 2, korkeus * 4.0);
182        pizzalapio.Image = pizzalapiokuva;
183        pizzalapio.Position = paikka + new Vector(0, korkeus);
184        Add(pizzalapio);
185
186    }
187    void Lisaarikkalapio(Vector paikka, double leveys, double korkeus)
188    {
189        PhysicsObject rikkalapio = new PhysicsObject(leveys*0.5, korkeus * 1.0);
190        rikkalapio.Image = rikkalapionkuva;
191        rikkalapio.Position = paikka + new Vector(0, korkeus);
192        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
193        seuraajanAivot.Speed = 300;
194        seuraajanAivot.DistanceFar = 600;
195        seuraajanAivot.DistanceClose = 200;
196        seuraajanAivot.StopWhenTargetClose = false;
197        Add(rikkalapio);
198       
199    }
200    void Lisaatelelapio(Vector paikka, double leveys, double korkeus)
201    {
202        PhysicsObject telelapio = new PhysicsObject(leveys * 0.5, korkeus * 1.0);
203        telelapio.Image = telelapionkuva;
204        telelapio.Position = paikka + new Vector(0, korkeus);
205        Add(telelapio);
206
207    }
208
209    void Lisaapiikit(Vector paikka, double leveys, double korkeus)
210    {
211        PhysicsObject piikit = PhysicsObject.CreateStaticObject(leveys, korkeus);
212        piikit.Position = paikka;
213        piikit.Image = piikkikuva;
214        Add(piikit);
215        piikit.Tag = "piikit";
216    }
217    void LisaaVpiikit(Vector paikka, double leveys, double korkeus)
218    {
219        PhysicsObject vpiikit = PhysicsObject.CreateStaticObject(leveys, korkeus);
220        vpiikit.Position = paikka;
221        vpiikit.Image = vpiikkikuva;
222        Add(vpiikit);
223        vpiikit.Tag = "piikit";
224    }
225    void tormaapiikkeihin(PhysicsObject pelaaja1, PhysicsObject piikit)
226    {
227       
228        MessageDisplay.Add("Rekt n00b");
229        pelaaja1.Destroy();
230        Timer.SingleShot(1.5,AloitaKenttaAlusta);
231
232
233    }
234
235    void Lisaanappi(Vector paikka, double leveys, double korkeus)
236    {
237        PhysicsObject nappi = PhysicsObject.CreateStaticObject(60, 40);
238        nappi.Position = paikka;
239        nappi.Image = nappikuva;
240        Add(nappi);
241    }
242}
Note: See TracBrowser for help on using the repository browser.