source: 2017/31/JohannesU/MummoDrift2D2017/MummoDrift2D2017/MummoDrift2D2017/MummoDrift2D2017.cs @ 9410

Revision 9410, 6.2 KB checked in by npo17_78, 23 months ago (diff)

Kirjotat jotain kivaa

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class MummoDrift2D2017 : PhysicsGame
10{
11    Image taustaKuva = LoadImage("ripulionmarkaakakkaa");
12    Image grassDirtBlock = LoadImage("grassDirtBlock");
13    Image dirtBlock = LoadImage("dirtBlock");
14    Image ukkelikuva = LoadImage("amg1_rt2");
15    Image kivikuva = LoadImage("rock");
16    Image Palikka2 = LoadImage("darkStoneBlock");
17    Image vihukuva = LoadImage("blobRight");
18    Image estekuva = LoadImage("skyBlock");
19
20    double kavelyNopeus = 500, hyppyNopeus = 1000;
21    PlatformCharacter ukkeli;
22    PhysicsObject vihu;
23
24
25    public override void Begin()
26    {
27
28        AloitaPeli();
29        Taustamusiikki();
30    }
31
32
33    void Fanta(Vector paikka, double leveys, double korkeus)
34    {
35        PhysicsObject este = new PhysicsObject(leveys, korkeus);
36        este.Position = paikka;
37        este.Shape = Shape.Rectangle;
38        // palikka.Color = Color.Gray;
39        este.Image = estekuva;
40        Add(este);
41    }
42
43
44    void LuoVihu(Vector paikka, double leveys, double korkeus)
45    {
46        vihu = new PhysicsObject(75, 55);
47        vihu.Shape = Shape.Rectangle;
48        vihu.Position = paikka;
49        vihu.CanRotate = false;
50        Add(vihu);
51        vihu.Image = vihukuva;
52        vihu.Tag = "vihu";
53
54        FollowerBrain seuraajanAivot = new FollowerBrain("ukkeli");
55        vihu.Brain = seuraajanAivot;
56        vihu.Brain.Active = true;
57
58    }
59
60
61
62
63    void Palikka(Vector paikka, double leveys, double korkeus)
64    {
65        PhysicsObject kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
66        kivi.Position = paikka;
67        kivi.Shape = Shape.Rectangle;
68        // palikka.Color = Color.Gray;
69        kivi.Image = Palikka2;
70        Add(kivi);
71    }
72
73    void kivipalikka(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        kivi.Position = paikka;
77        kivi.Shape = Shape.Rectangle;
78        // palikka.Color = Color.Gray;
79        kivi.Image = kivikuva;
80        Add(kivi);
81    }
82
83
84    void LiikkuvaTausta()
85    {
86        GameObject taustaPilvet = new GameObject(Screen.Width, Screen.Height);
87        taustaPilvet.Image = taustaKuva;
88        Add(taustaPilvet, -3);
89        taustaPilvet.Position += new Vector(0, 100);
90        Layers[-3].RelativeTransition = new Vector(0, 0);
91    }
92    void Ruohomultapalikka(Vector paikka, double leveys, double korkeus)
93    {
94        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
95        palikka.Position = paikka;
96        palikka.Shape = Shape.Rectangle;
97        // palikka.Color = Color.Gray;
98        palikka.Image = grassDirtBlock;
99        Add(palikka);
100    }
101    void Multapalikka(Vector paikka, double leveys, double korkeus)
102    {
103        PhysicsObject Palikka2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
104        Palikka2.Position = paikka;
105        Palikka2.Shape = Shape.Rectangle;
106        Palikka2.Image = dirtBlock;
107        Add(Palikka2);
108    }
109    void LuoUkkeli(Vector paikka, double leveys, double korkeus)
110    {
111        ukkeli = new PlatformCharacter(75, 55);
112        ukkeli.Shape = Shape.Rectangle;
113        ukkeli.Position = paikka;
114        ukkeli.CanRotate = false;
115        ukkeli.Tag = "ukkeli";
116        Add(ukkeli);
117        ukkeli.Image = ukkelikuva;
118        AddCollisionHandler(ukkeli, "vihu", Tormaavihuun);
119    }
120    void AsetaOhjaimet()
121    {
122        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", ukkeli, -kavelyNopeus);
123        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", ukkeli, kavelyNopeus);
124        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", ukkeli, hyppyNopeus);
125        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
126    }
127    void Liikuta(PlatformCharacter ukkeli, double nopeus)
128    {
129        ukkeli.Walk(nopeus);
130    }
131    void Hyppaa(PlatformCharacter ukkeli, double nopeus)
132    {
133        ukkeli.Jump(nopeus);
134    }
135
136
137    void AloitaPeli()
138    {
139        //Vector impulssi = new Vector(500.0, 0.0);
140        //ukkeli.Hit(impulssi);
141
142        // LuoUkkeli();
143        ClearAll();
144        LiikkuvaTausta();//Level.Background.Image = taustaKuva;
145
146        TileMap ruudut = TileMap.FromLevelAsset("kentta");
147        ruudut.SetTileMethod('m', Ruohomultapalikka);
148        ruudut.SetTileMethod('p', Multapalikka);
149        ruudut.SetTileMethod('l', LuoUkkeli);
150        ruudut.SetTileMethod('d', kivipalikka);
151        ruudut.SetTileMethod('o', Palikka);
152        ruudut.SetTileMethod('i', LuoVihu);
153        ruudut.SetTileMethod('u', Fanta);
154        ruudut.Execute(50, 50);
155
156        Camera.Follow(ukkeli);
157
158        Gravity = new Vector(0, -1000);
159
160
161        AsetaOhjaimet();
162
163    }
164    void Tormaavihuun(PhysicsObject pelaaja, PhysicsObject kohde)
165    {
166        if(pelaaja.Bottom > kohde.Top- 10)
167        {
168            kohde.Destroy();
169            return;
170        }
171
172        pelaaja.Destroy();
173        AloitaPeli();
174
175    }
176    void SeuraajaAivot()
177    {
178        FollowerBrain seuraajanAivot = new FollowerBrain(ukkeli);
179        seuraajanAivot.Speed = 300;                 // Millä nopeudella kohdetta seurataan
180        seuraajanAivot.DistanceFar = 600;           // Etäisyys jolla aletaan seurata kohdetta
181        seuraajanAivot.DistanceClose = 200;         // Etäisyys jolloin ollaan lähellä kohdetta
182        seuraajanAivot.StopWhenTargetClose = true;  // Pysähdytään kun ollaan lähellä kohdetta
183                                                    //  seuraajanAivot.FarBrain = satunnaisAivot;   // Käytetään satunnaisaivoja kun ollaan kaukana
184
185        // Tapahtuma, joka tapahtuu kun ollaan lähellä kohdetta
186        // seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella;
187
188
189        // Aliohjelma joka ajetaan kun olio on tarpeeksi lähellä kohdetta.
190
191
192
193
194    }
195    void Taustamusiikki()
196    {
197        MediaPlayer.Play("musiikkipeliin");
198        MediaPlayer.IsRepeating = true;
199    }
200
201}
Note: See TracBrowser for help on using the repository browser.