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

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