source: 2016/26/SallaK/Sandwich/Sandwich/Sandwich/Sandwich.cs @ 7593

Revision 7593, 6.8 KB checked in by salmarko, 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 Sandwich : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    IntMeter pisteLaskuri;
17    Image pelaajanKuva = LoadImage("norsu");
18    Image tahtiKuva = LoadImage("tahti");
19
20
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24    public override void Begin()
25    {
26        Gravity = new Vector(0, -1000);
27
28        LuoKentta();
29        LisaaNappaimet();
30        LuoPistelaskuri();
31        Camera.Follow(pelaaja1);
32        Camera.ZoomFactor = 1.2;
33        Camera.StayInLevel = true;
34    }
35
36    void LuoKentta()
37    {
38        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("mystinenmanulikenttä4");
39        ruudut.SetTileMethod(Color.FromHexCode("B200FF"), LisaaPelaaja);
40        ruudut.SetTileMethod(Color.Black, LisaaTaso);
41
42        ruudut.SetTileMethod(Color.FromHexCode("FFD800"),Luoaine,Color.FromHexCode("FFD800"), "juustoh");
43        ruudut.SetTileMethod(Color.FromHexCode("7F6A00"), Luoaine, Color.FromHexCode("7F6A00"), "juustop");
44        ruudut.SetTileMethod(Color.FromHexCode("FFE97F"), Luoaine, Color.FromHexCode("FFE97F"), "juustoe");
45
46        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), Luoaine, Color.FromHexCode("FF0000"), "tomaattih");
47        ruudut.SetTileMethod(Color.FromHexCode("7F0000"), Luoaine, Color.FromHexCode("7F0000"), "tomaattip");
48        ruudut.SetTileMethod(Color.FromHexCode("FF7F7F"), Luoaine, Color.FromHexCode("FF7F7F"), "tomaattie");
49
50        ruudut.SetTileMethod(Color.FromHexCode("FF6A00"), Luoaine, Color.FromHexCode("FF6A00"), "voih");
51        ruudut.SetTileMethod(Color.FromHexCode("7F3300"), Luoaine, Color.FromHexCode("7F3300"), "voip");
52        ruudut.SetTileMethod(Color.FromHexCode("FFB27F"), Luoaine, Color.FromHexCode("FFB27F"), "voie");
53
54        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), Luoaine, Color.FromHexCode("0026FF"), "kalah");
55        ruudut.SetTileMethod(Color.FromHexCode("00137F"), Luoaine, Color.FromHexCode("00137F"), "kalap");
56        ruudut.SetTileMethod(Color.FromHexCode("00FFFF"), Luoaine, Color.FromHexCode("00FFFF"), "kalae");
57
58        ruudut.SetTileMethod(Color.FromHexCode("007F0E"), Luoaine, Color.FromHexCode("007F0E"), "salaattih");
59        ruudut.SetTileMethod(Color.FromHexCode("003F06"), Luoaine, Color.FromHexCode("003F06"), "salaattip");
60        ruudut.SetTileMethod(Color.FromHexCode("4CFF80"), Luoaine, Color.FromHexCode("4CFF80"), "salaattie");
61
62        ruudut.SetTileMethod(Color.FromHexCode("4A271F"), Luoaine, Color.FromHexCode("4A271F"), "leipäh");
63        ruudut.SetTileMethod(Color.FromHexCode("261410"), Luoaine, Color.FromHexCode("261410"), "leipäp");
64        ruudut.SetTileMethod(Color.FromHexCode("A87A61"), Luoaine, Color.FromHexCode("A87A61"), "leipäe");
65
66        ruudut.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
67        Level.CreateBorders();
68        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
69    }
70
71    void LisaaTaso(Vector paikka, double leveys, double korkeus)
72    {
73        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
74        taso.Position = paikka;
75        taso.Color = Color.Black;
76        Add(taso);
77    }
78
79
80    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
81    {
82        pelaaja1 = new PlatformCharacter(leveys, korkeus);
83        pelaaja1.Position = paikka;
84        pelaaja1.Tag = "pelaaja";
85        pelaaja1.Mass = 4.0;
86        pelaaja1.Image = pelaajanKuva;
87        Add(pelaaja1);
88
89     
90
91    }
92
93
94
95    void Luoaine(Vector paikka, double leveys, double korkeus, Color vari, String tag)
96    {
97        PhysicsObject aine = new PhysicsObject(leveys, korkeus);
98        aine.Position = paikka;
99        aine.IgnoresGravity = true;
100        aine.Color = vari;
101        aine.Tag = tag;
102        Add(aine);
103        AddCollisionHandler(aine, "pelaaja", Pelaajakeraaaineen);
104
105    }
106
107    void Pelaajakeraaaineen( PhysicsObject aine, PhysicsObject pelaaja)
108    {
109
110        aine.Destroy();
111
112        if (aine.Tag.ToString().StartsWith("juusto"))
113        {
114
115            annapisteet(aine);
116
117        }
118
119        if (aine.Tag.ToString().StartsWith("tomaatti"))
120        {
121
122            annapisteet(aine);
123
124        }
125
126
127        if (aine.Tag.ToString().StartsWith("leipä"))
128        {
129
130            annapisteet(aine);
131
132        }
133
134        if (aine.Tag.ToString().StartsWith("salaatti"))
135        {
136
137            annapisteet(aine);
138
139        }
140
141
142        if (aine.Tag.ToString().StartsWith("kala"))
143        {
144
145            annapisteet(aine);
146
147        }
148
149        if (aine.Tag.ToString().StartsWith("voi"))
150        {
151
152            annapisteet(aine);
153
154        }
155    }
156
157    void annapisteet( PhysicsObject aine)
158    {
159        if (aine.Tag.ToString().EndsWith("h"))
160        {
161            pisteLaskuri.Value += 100;
162        }
163
164        if (aine.Tag.ToString().EndsWith("p"))
165        {
166            pisteLaskuri.Value += 10;
167        }
168
169        if (aine.Tag.ToString().EndsWith("e"))
170        {
171            pisteLaskuri.Value += 500;
172        }
173
174
175    }
176
177
178
179    void LuoPistelaskuri()
180    {
181        pisteLaskuri = new IntMeter(0);
182
183        Label pisteNaytto = new Label();
184        pisteNaytto.X = Screen.Left + 100;
185        pisteNaytto.Y = Screen.Top - 100;
186        pisteNaytto.TextColor = Color.Black;
187        pisteNaytto.Color = Color.White;
188
189        pisteNaytto.BindTo(pisteLaskuri);
190        Add(pisteNaytto);
191    }
192
193
194
195    void LisaaNappaimet()
196    {
197        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
198        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
199
200        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
201        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
202        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
203
204        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
205
206        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
207        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
208        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
209
210        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
211    }
212
213    void Liikuta(PlatformCharacter hahmo, double nopeus)
214    {
215        hahmo.Walk(nopeus);
216    }
217
218    void Hyppaa(PlatformCharacter hahmo, double nopeus)
219    {
220        hahmo.Jump(nopeus);
221    }
222
223
224 
225}
Note: See TracBrowser for help on using the repository browser.