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

Revision 6268, 6.8 KB checked in by tehenatu, 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 piikkikuva = LoadImage("piikit");
17    Image telelapionkuva = LoadImage("telelapio");
18    Image rikkalapionkuva = LoadImage("rikkalapio");
19    Image pizzalapiokuva = LoadImage("pizzalapio");
20    Image fiskarskuva = LoadImage("fiskars");
21    Image lapionkuva = LoadImage("lapio");
22    Image klkuva = LoadImage("kenttälapio");
23    Image pelaajanKuva = LoadImage("awesome");
24    Image tahtiKuva = LoadImage("tahti");
25
26    SoundEffect maaliAani = LoadSoundEffect("maali");
27
28    public override void Begin()
29    {
30        Gravity = new Vector(0, -1000);
31
32        LuoKentta();
33        LisaaNappaimet();
34
35        Camera.Follow(pelaaja1);
36        Camera.ZoomFactor = 1.2;
37        Camera.StayInLevel = true;
38    }
39
40    void LuoKentta() 
41    {
42        TileMap kentta = TileMap.FromLevelAsset("kentta1");
43        kentta.SetTileMethod('s', Lisaapiikit);
44        kentta.SetTileMethod('t', Lisaatelelapio);
45        kentta.SetTileMethod('r', Lisaarikkalapio);
46        kentta.SetTileMethod('#', LisaaTaso);
47        kentta.SetTileMethod('*', LisaaTahti);
48        kentta.SetTileMethod('N', LisaaPelaaja);
49        kentta.SetTileMethod('l', Lisaalapio);
50        kentta.SetTileMethod('k', Lisaakenttälapio);
51        kentta.SetTileMethod('f', Lisaafiskars);
52        kentta.SetTileMethod('p', Lisaapizzalapio);
53        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
54        Level.CreateBorders();
55        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
56    }
57
58    void LisaaTaso(Vector paikka, double leveys, double korkeus)
59    {
60        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
61        taso.Position = paikka;
62        taso.Color = Color.Green;
63        Add(taso);
64        SmoothTextures = false;
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 = tahtiKuva;
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        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
84        pelaaja1.CanRotate = true;
85        Add(pelaaja1);
86    }
87
88    void LisaaNappaimet()
89    {
90        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
91        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
92
93        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
94        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
95        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
96
97        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
98
99        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
100        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
101        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
102
103        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
104    }
105
106    void Liikuta(PlatformCharacter hahmo, double nopeus)
107    {
108        hahmo.Walk(nopeus);
109    }
110
111    void Hyppaa(PlatformCharacter hahmo, double nopeus)
112    {
113        hahmo.Jump(nopeus);
114    }
115
116    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
117    {
118        maaliAani.Play();
119        MessageDisplay.Add("Sussiunakkoon!");
120        tahti.Destroy();
121    }
122    void Lisaalapio(Vector paikka, double leveys, double korkeus)
123    {
124        PhysicsObject lapio = new PhysicsObject(leveys * 3.5 , korkeus*6.5);
125        lapio.Image = lapionkuva;
126        lapio.Position = paikka + new Vector(0, lapio.Height/2);
127        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
128        satunnaisAivot.ChangeMovementSeconds = 3;
129        ; lapio.Brain = satunnaisAivot;
130        satunnaisAivot.Speed = 600;
131        Add(lapio);
132    }
133    void Lisaakenttälapio (Vector paikka, double leveys, double korkeus)
134    {
135        PhysicsObject kenttälapio = new PhysicsObject(leveys, korkeus * 2.0);
136        kenttälapio.Image = klkuva;
137        kenttälapio.Position = paikka + new Vector(0, korkeus);
138        Add(kenttälapio);
139
140}
141    void Lisaafiskars (Vector paikka, double leveys, double korkeus)
142    {
143        PhysicsObject fiskars = new PhysicsObject(leveys*2.8, korkeus * 4.0);
144        fiskars.Image = fiskarskuva;
145        fiskars.Position = paikka + new Vector(0, korkeus);
146        Add(fiskars);
147        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
148        satunnaisAivot.ChangeMovementSeconds = 3;
149      ;  fiskars.Brain = satunnaisAivot;
150      satunnaisAivot.Speed = 600;
151    }
152    void Lisaapizzalapio(Vector paikka, double leveys, double korkeus)
153    {
154        PhysicsObject pizzalapio = new PhysicsObject(leveys * 2, korkeus * 4.0);
155        pizzalapio.Image = pizzalapiokuva;
156        pizzalapio.Position = paikka + new Vector(0, korkeus);
157        Add(pizzalapio);
158
159    }
160    void Lisaarikkalapio(Vector paikka, double leveys, double korkeus)
161    {
162        PhysicsObject rikkalapio = new PhysicsObject(leveys*0.5, korkeus * 1.0);
163        rikkalapio.Image = rikkalapionkuva;
164        rikkalapio.Position = paikka + new Vector(0, korkeus);
165        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja1);
166        seuraajanAivot.Speed = 300;
167        seuraajanAivot.DistanceFar = 600;
168        seuraajanAivot.DistanceClose = 200;
169        seuraajanAivot.StopWhenTargetClose = false;
170        Add(rikkalapio);
171       
172    }
173    void Lisaatelelapio(Vector paikka, double leveys, double korkeus)
174    {
175        PhysicsObject telelapio = new PhysicsObject(leveys * 0.5, korkeus * 1.0);
176        telelapio.Image = telelapionkuva;
177        telelapio.Position = paikka + new Vector(0, korkeus);
178        Add(telelapio);
179
180    }
181
182    void Lisaapiikit(Vector paikka, double leveys, double korkeus)
183    {
184        PhysicsObject piikit = PhysicsObject.CreateStaticObject(leveys, korkeus);
185        piikit.Position = paikka;
186        piikit.Image = piikkikuva;
187        Add(piikit);
188    }
189
190}
Note: See TracBrowser for help on using the repository browser.