source: 2015/24/TomasC/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 5952

Revision 5952, 5.4 KB checked in by tocholmo, 5 years ago (diff)

Ensimmäinen taso tehty, Seuraava tekevänä

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    int kenttaNro = 1;
17   
18
19    Image pelaajanKuva = LoadImage("norsu");
20    Image tahtiKuva = LoadImage("tahti");
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24    Image taustakuva = LoadImage("BR");
25 
26    public override void Begin()
27    {
28        LataaKentta();
29    }
30
31    void LataaKentta()
32    {
33        ClearAll();
34
35        Gravity = new Vector(0, -1000);
36
37        IsFullScreen = true;
38
39        LuoKentta("kentta"+kenttaNro);
40        LisaaNappaimet();
41
42        Camera.Follow(pelaaja1);
43        Camera.ZoomFactor = 2.0;
44        Camera.StayInLevel = true;
45    }
46
47    void seuraavakentta()
48    {
49        kenttaNro++;
50        LataaKentta();
51    }
52
53    void LuoKentta(string kentta)
54    {
55        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kentta);
56
57        ruudut.SetTileMethod(Color.Black, Lisaahirvio);
58        ruudut.SetTileMethod(Color.Rose, LisaaTaso);
59        ruudut.SetTileMethod(Color.Red, LisaaTahti);
60        ruudut.SetTileMethod(Color.Gold, LisaaPelaaja);
61        ruudut.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
62        Level.CreateBorders();
63        Level.Background.Image = taustakuva;
64    }
65
66    void LisaaTaso(Vector paikka, double leveys, double korkeus)
67    {
68        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
69        taso.Position = paikka;
70        taso.Color = Color.Green;
71        taso.CollisionIgnoreGroup = 3;
72        Add(taso);
73    }
74
75    void LisaaTahti(Vector paikka, double leveys, double korkeus)
76    {
77        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
78        tahti.IgnoresCollisionResponse = true;
79        tahti.Position = paikka;
80        tahti.Image = tahtiKuva;
81        tahti.Tag = "tahti";
82        Add(tahti);
83    }
84
85    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
86    {
87        pelaaja1 = new PlatformCharacter(leveys, korkeus);
88        pelaaja1.Position = paikka;
89        pelaaja1.Mass = 4.0;
90        pelaaja1.Image = pelaajanKuva;
91        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
92        AddCollisionHandler(pelaaja1, "Jarmo", TormaaShrek);
93        pelaaja1.Tag = "Jimmy";
94        Add(pelaaja1);
95    }
96
97    void LisaaNappaimet()
98    {
99        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
100        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
101
102        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
103        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
104        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
105
106        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
107
108        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
109        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
110        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
111
112        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
113    }
114
115    void Liikuta(PlatformCharacter hahmo, double nopeus)
116    {
117        hahmo.Walk(nopeus);
118    }
119
120    void Hyppaa(PlatformCharacter hahmo, double nopeus)
121    {
122       
123        hahmo.Jump(nopeus);
124    }
125
126    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
127    {
128        maaliAani.Play();
129        MessageDisplay.Add("PICKED UP DORITOS");
130        tahti.Destroy();
131    }
132    void Lisaahirvio(Vector paikka, double leveys, double korkeus)
133    {
134        PhysicsObject Jarmo = new PhysicsObject(leveys, korkeus);
135        Jarmo.Position = paikka;
136        Jarmo.Image = LoadImage("Jarmo");
137        Jarmo.Tag = "Jarmo";
138        Add(Jarmo);
139
140        FollowerBrain seuraajanAivot = new FollowerBrain("Jimmy");
141        Jarmo.Brain = seuraajanAivot;
142        seuraajanAivot.Speed = 100;
143        seuraajanAivot.DistanceFar = 2000;
144        seuraajanAivot.DistanceClose = 2000;
145        seuraajanAivot.StopWhenTargetClose = false;
146        seuraajanAivot.Active = true;
147        Jarmo.CollisionIgnoreGroup = 3;
148
149 
150    }
151    void TormaaShrek(PhysicsObject hahmo, PhysicsObject Jarmo)
152    {
153        hahmo.Destroy();
154        maaliAani.Play();
155        MessageDisplay.Add("GET OUT OF ME SWAMP");
156        rajaytaShrek(Jarmo, LoadImage("Snipe"), 100);
157        rajaytaShrek(Jarmo, LoadImage("Shrekt"), 200);
158        rajaytaShrek(Jarmo, LoadImage("MD"), 100);
159        Timer.SingleShot(3.0, LataaKentta);
160
161       
162    }
163    void rajaytaShrek(PhysicsObject Jarmo, Image kuva, int pMax)
164    {
165       
166        ExplosionSystem rajahdys = new ExplosionSystem(kuva, pMax);
167        rajahdys.Position = Jarmo.Position;
168
169        Add(rajahdys);
170        rajahdys.AddEffect(Jarmo.X, Jarmo.Y, pMax);
171    }
172    void Pelaaja1Tormasi(PhysicsObject pelaaja1, PhysicsObject Jarmo)
173    {
174       
175       
176          LataaKentta();
177       
178}
179
180 }
Note: See TracBrowser for help on using the repository browser.