source: 2015/30/JuliaN/Hajottaa/Hajottaa/Hajottaa/Hajottaa.cs @ 6902

Revision 6902, 6.9 KB checked in by jupipana, 6 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 Hajottaa : PhysicsGame
10{
11    const double nopeus = 600;
12    const double hyppyNopeus = 850;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image piikkiKuva = LoadImage("Piikki");
18    Image tahtiKuva = LoadImage("Hiirus");
19    Image hahmoKuva = LoadImage("Sneik");
20    Image tasoKuva = LoadImage("Gradient");
21    Image taustaKuva = LoadImage("Lehti");
22    Image maaliKuva = LoadImage("Maalii");
23    Image bossKuva = LoadImage("Asshat");
24
25    public override void Begin()
26    {
27        AloitaPeli();
28        //SeuraavaKentta();
29    }
30
31    //int kenttaNro = 1;
32   
33    void AloitaPeli()
34    {
35        ClearAll();
36        Gravity = new Vector(0, -1000);
37
38        LuoKentta();
39        LisaaNappaimet();
40
41        Camera.Follow(pelaaja1);
42        Camera.ZoomFactor = 1.2;
43        Camera.StayInLevel = true;
44    }
45
46    void LuoKentta()
47    {
48        ColorTileMap kentta = ColorTileMap.FromLevelAsset("FinalKentta2");
49        kentta.SetTileMethod(Color.Black, LisaaTaso);
50        kentta.SetTileMethod(Color.FromHexCode("FF00DC"), LisaaTahti);
51        kentta.SetTileMethod(Color.FromHexCode("4CFF00"), LisaaPelaaja);
52        kentta.SetTileMethod(Color.FromHexCode("FFD800"), LisaaPiikki);
53        kentta.SetTileMethod(Color.FromHexCode("0026FF"), LisaaMaali);
54        kentta.SetTileMethod(Color.FromHexCode("00FFFF"), LisaaVihollinen);
55
56        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
57        Level.CreateBorders();
58        Level.Background.Color = Color.Blue;
59        Level.Background.Image = taustaKuva;
60        Level.Background.TileToLevel();
61       
62    }
63
64    void LisaaTaso(Vector paikka, double leveys, double korkeus)
65    {
66        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
67        taso.Position = paikka;
68        taso.Color = Color.Green;
69        taso.Image = tasoKuva;
70        Add(taso);
71    }
72
73    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
74    {
75        PlatformCharacter vihollinen = new PlatformCharacter(leveys, korkeus);
76        vihollinen.Tag = "boss";
77        vihollinen.Image = bossKuva;
78        vihollinen.Position = paikka;
79        vihollinen.FacingDirection = Direction.Left;
80        Add(vihollinen);
81        AddCollisionHandler(vihollinen, pelaaja1, VihollinenOsuu);
82       
83        AssaultRifle vihollisenAse = new AssaultRifle(30, 10);
84        vihollisenAse.Ammo.Value = 10000;
85        vihollisenAse.ProjectileCollision = AmmusOsui;
86        vihollinen.Weapon = vihollisenAse;
87
88
89        Timer ajastin = new Timer();
90        ajastin.Interval = 0.5;
91        ajastin.Timeout += delegate { vihollinen.Weapon.Shoot(); };
92        ajastin.Start();
93    }
94
95    void LisaaMaali(Vector paikka, double leveys, double korkeus)
96    {
97        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
98        maali.Tag = "maali";
99        maali.Image = maaliKuva;
100        maali.Position = paikka;
101        Add(maali);
102    }
103
104    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
105    {
106        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
107        piikki.Color = Color.Blue;
108        piikki.Tag = "pahis";
109        piikki.Image = piikkiKuva;
110        piikki.Position = paikka;
111        Add(piikki);
112    }
113
114    void LisaaTahti(Vector paikka, double leveys, double korkeus)
115    {
116        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
117        tahti.IgnoresCollisionResponse = true;
118        tahti.Position = paikka;
119        tahti.Image = tahtiKuva;
120        tahti.Tag = "tahti";
121        Add(tahti);
122    }
123
124    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
125    {
126        pelaaja1 = new PlatformCharacter(leveys, korkeus);
127        pelaaja1.Position = paikka;
128        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
129        AddCollisionHandler(pelaaja1, "pahis", PelaajaOsuu);
130        AddCollisionHandler(pelaaja1, "ammo", PelaajaOsuu);
131        AddCollisionHandler(pelaaja1, "tahti", CollisionHandler.PlaySound("Eating"));
132        AddCollisionHandler(pelaaja1, "ammo", CollisionHandler.PlaySound("Hmm"));
133        AddCollisionHandler(pelaaja1, "pahis", CollisionHandler.PlaySound("Hmm"));
134        pelaaja1.Image = hahmoKuva;
135        pelaaja1.Tag = "hahmo";
136        Add(pelaaja1);
137    }
138   
139    void Liikuta(PlatformCharacter hahmo, double nopeus)
140    {
141        hahmo.Walk(nopeus);
142    }
143
144    void Hyppaa(PlatformCharacter hahmo, double nopeus)
145    {
146        hahmo.Jump(nopeus);
147    }
148    void LisaaNappaimet()
149    {
150        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
151        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
152
153        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
154        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
155        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
156    }
157
158    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
159    {
160        MessageDisplay.Add("Söit hiirun!");
161        tahti.Destroy();
162    }
163
164    void PelaajaOsuu(PhysicsObject pelaaja, PhysicsObject kohde)
165    {
166        AloitaPeli();
167        MessageDisplay.Add("Sinusta tehtiin käsilaukku");
168    }
169
170   void VihollinenOsuu(PhysicsObject vihollinen, PhysicsObject pelaaja1)
171    {
172        vihollinen.Destroy();
173        Explosion rajahdys = new Explosion(50);
174        rajahdys.Position = vihollinen.Position;
175        Add(rajahdys);
176    }
177
178    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
179    {
180        ammus.Destroy();
181        Explosion rajahdys = new Explosion(50);
182        rajahdys.Position = ammus.Position;
183        Add(rajahdys);
184        ammus.Tag = "ammo";
185    }
186   
187    //void SeuraavaKentta()
188    //{
189    //    ClearAll();
190
191    //    if (kenttaNro == 1) LuoKentta("FinalKentta");
192    //    else if (kenttaNro == 2) LuoKentta("FinalKentta2");
193    //    else if (kenttaNro > 2) Exit();
194
195    //    LisaaNappaimet();
196
197    //}
198
199    ////void LuoKentta(string kenttaTiedostonNimi)
200    ////{
201    ////    TileMap ruudut = TileMap.FromLevelAsset(kenttaTiedostonNimi);
202    ////    //tässä luodaan kenttä tekstitiedostosta
203    ////}
204
205    //void TormasiMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
206    //{
207    //    //Kasvatetaan kenttänumeroa yhdellä ja siirrytään seuraavaan kenttään:
208    //    kenttaNro++;
209    //    SeuraavaKentta();
210    //}
211
212    //void TormasiPiikkiin(PhysicsObject pelaaja, PhysicsObject piikki)
213    //{
214    //    //Sama kenttä ladataan alusta jos kenttänumeroa ei kasvateta:
215    //    SeuraavaKentta();
216    //}
217}
218
Note: See TracBrowser for help on using the repository browser.