source: 2017/27/AnttiN/Kullankaivaja/Kullankaivaja/Kullankaivaja/Kullankaivaja.cs @ 8852

Revision 8852, 7.7 KB checked in by npo17_45, 4 years ago (diff)

Grafiikoita ja kaivaminen

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Kullankaivaja : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    int pisteet = 0;
16    IntMeter rahalaskuri;
17
18    PlatformCharacter pelaaja1;
19
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21    Image pelaajanKuva = LoadImage("Kaivaja");
22    Image tahtiKuva = LoadImage("tahti");
23    Image ruohomaa = LoadImage("Ruohomaa");
24    Image maa = LoadImage("Maa");
25    Image hiekkakuva = LoadImage("Hiekka");
26    Image kuparikuva = LoadImage("Kupari");
27    Image hopeakuva = LoadImage("Hopea");
28    Image vahankultaakuva = LoadImage("Vahankultaa");
29    Image paljonkultaakuva = LoadImage("Paljonkultaa");
30
31    public override void Begin()
32    {
33        Gravity = new Vector(0, -500);
34
35        LuoKentta();
36        LisaaNappaimet();
37        LisaaMuut();
38
39        Camera.Follow(pelaaja1);
40        Camera.ZoomFactor = 1.2;
41        Camera.StayInLevel = true;
42    }
43
44    void LisaaMuut()
45    {
46        //rahalaskuri laskemaan ja näyttämään rahat
47        rahalaskuri = new IntMeter(pisteet);
48
49        Label pisteNaytto = new Label();
50        pisteNaytto.X = Screen.Left + 100;
51        pisteNaytto.Y = Screen.Top - 100;
52        pisteNaytto.TextColor = Color.Black;
53        pisteNaytto.Color = Color.White;
54
55        pisteNaytto.Title = "Rahaa";
56        pisteNaytto.BindTo(rahalaskuri);
57        Add(pisteNaytto);
58
59    }
60    void LuoKentta()
61    {
62        TileMap kentta = TileMap.FromLevelAsset("kentta1");
63        kentta.SetTileMethod('#', LisaaTaso);
64        kentta.SetTileMethod('M', LisaaMaa);
65        kentta.SetTileMethod('*', LisaaTahti);
66        kentta.SetTileMethod('N', LisaaPelaaja);
67        kentta.SetTileMethod('P', LisaaMalmi);
68        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
69        Level.CreateBorders();
70        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
71    }
72
73    void LisaaTaso(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        taso.Position = paikka;
77        taso.Image = ruohomaa;
78        taso.Tag = "taso";
79        Add(taso);
80    }
81
82    void LisaaMaa(Vector paikka, double leveys, double korkeus)
83    {
84
85        PhysicsObject multa = PhysicsObject.CreateStaticObject(leveys, korkeus);
86        multa.Position = paikka;
87        multa.Image = maa;
88        multa.Tag = "maa";
89        Add(multa);
90
91    }
92
93    void LisaaMalmi(Vector paikka, double leveys, double korkeus)
94    {
95        //sattumanvarainen kuutio
96        int Kuutio = RandomGen.SelectOne(1,1,1,1,1,1,1,1,1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,2, 3,3,3,3,3,3,3,3,3,3, 4,4, 5);
97
98        if (Kuutio == 1)
99        {
100            PhysicsObject hiekka = PhysicsObject.CreateStaticObject(leveys, korkeus);
101            hiekka.Position = paikka;
102            hiekka.Image = hiekkakuva;
103            hiekka.Tag = "hiekka";
104            Add(hiekka);
105        }
106
107        if (Kuutio == 2)
108        {
109            PhysicsObject kupari = PhysicsObject.CreateStaticObject(leveys, korkeus);
110            kupari.Position = paikka;
111            kupari.Image = kuparikuva;
112            kupari.Tag = "kupari";
113            Add(kupari);
114        }
115
116        if (Kuutio == 3)
117        {
118            PhysicsObject hopea = PhysicsObject.CreateStaticObject(leveys, korkeus);
119            hopea.Position = paikka;
120            hopea.Image = hopeakuva;
121            hopea.Tag = "hopea";
122            Add(hopea);
123        }
124
125        if (Kuutio == 4)
126        {
127            PhysicsObject vahankultaa = PhysicsObject.CreateStaticObject(leveys, korkeus);
128            vahankultaa.Position = paikka;
129            vahankultaa.Image = vahankultaakuva;
130            vahankultaa.Tag = "vahankultaa";
131            Add(vahankultaa);
132        }
133
134        if (Kuutio == 5)
135        {
136            PhysicsObject paljonkultaa = PhysicsObject.CreateStaticObject(leveys, korkeus);
137            paljonkultaa.Position = paikka;
138            paljonkultaa.Image = paljonkultaakuva;
139            paljonkultaa.Tag = "paljonkultaa";
140            Add(paljonkultaa);
141        }
142
143    }
144    void LisaaTahti(Vector paikka, double leveys, double korkeus)
145    {
146        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
147        tahti.IgnoresCollisionResponse = true;
148        tahti.Position = paikka;
149        tahti.Image = tahtiKuva;
150        tahti.Tag = "tahti";
151        Add(tahti);
152    }
153
154    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
155    {
156        pelaaja1 = new PlatformCharacter(leveys*0.9, korkeus*2);
157        pelaaja1.Position = paikka;
158        pelaaja1.Mass = 1.0;
159        pelaaja1.Image = pelaajanKuva;
160        pelaaja1.StaticFriction = 0;
161        pelaaja1.KineticFriction = 0;
162        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
163        Add(pelaaja1);
164    }
165
166    void LisaaNappaimet()
167    {
168        IsMouseVisible = true;
169
170        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Klikkaa, null);
171
172        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
173        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
174        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
175        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
176        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
177        Keyboard.Listen(Key.P, ButtonState.Pressed, Nollaa, "nollaa palikat");
178
179
180        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
181        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
182        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
183        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
184
185        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
186    }
187
188    void Klikkaa()
189    {
190        Vector paikka = Mouse.PositionOnWorld;
191        List<GameObject> oliot = GetObjectsAt(paikka, 1);
192        foreach (GameObject g in oliot)
193        {
194            if(Vector.Distance(pelaaja1.Position,g.Position) <160 && !g.Equals(pelaaja1)&& !g.Tag.Equals("maa") && !g.Tag.Equals("taso"))
195            {
196                if(g.Tag == "kupari")
197                {
198                    rahalaskuri.Value += 2;
199                }
200                if (g.Tag == "hopea")
201                {
202                    rahalaskuri.Value += 5;
203                }
204                if (g.Tag == "vahankultaa")
205                {
206                    rahalaskuri.Value += 10;
207                }
208                if (g.Tag == "paljonkultaa")
209                {
210                    rahalaskuri.Value += 25;
211                }
212
213                pisteet = rahalaskuri.Value;
214                g.Destroy();
215            }
216        }
217
218    }
219
220    void Nollaa()
221    {
222
223        ClearAll();
224        Begin();
225
226    }
227    void Liikuta(PlatformCharacter hahmo, double nopeus)
228    {
229        hahmo.Walk(nopeus);
230    }
231
232    void Hyppaa(PlatformCharacter hahmo, double nopeus)
233    {
234        hahmo.Jump(nopeus);
235    }
236
237    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
238    {
239        maaliAani.Play();
240        MessageDisplay.Add("Keräsit tähden!");
241        tahti.Destroy();
242    }
243}
Note: See TracBrowser for help on using the repository browser.