source: 2014/27/JesseL/Trapp/Trapp/Trapp/Trapp.cs @ 5421

Revision 5421, 6.3 KB checked in by jeloppon, 7 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 Trapp : PhysicsGame
10{
11    private Image[] putous = LoadImages("lasku");
12   
13
14    const double nopeus = 700;
15    const double hyppyNopeus = 2075;
16    const double heittonopeus = 400;
17    const int RUUDUN_KOKO = 40;
18
19    PlatformCharacter pelaaja1;
20   
21   
22
23   
24    Image tahtiKuva = LoadImage("tahti");
25
26    SoundEffect maaliAani = LoadSoundEffect("maali");
27
28    public override void Begin()
29    {
30        Gravity = new Vector(0, -1500);
31
32        LuoKentta();
33        LisaaNappaimet();
34       
35
36        Camera.Follow(pelaaja1);
37        Camera.ZoomFactor = 0.7;
38        Camera.StayInLevel = true;
39        SetWindowSize(1024, 768, true);
40        IsFullScreen = false;
41        SmoothTextures = false;
42
43    }
44
45
46    void LuoKentta()
47    {
48        //TileMap kentta = TileMap.FromLevelAsset("kentta1");
49        //kentta.SetTileMethod('#', LisaaTaso);
50        //kentta.SetTileMethod('*', LisaaTahti);
51        //kentta.SetTileMethod('N', LisaaPelaaja);
52        //kentta.SetTileMethod('P', LisaaVihollinen);
53        //kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
54       
55        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
56        SmoothTextures = false;
57
58        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.
59        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("11223344");
60
61        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.
62        ruudut.SetTileMethod(Color.YellowGreen, LisaaPelaaja);
63        ruudut.SetTileMethod(Color.Black, LisaaTaso);
64        //ruudut.SetTileMethod(Color.Red, LisaaVihollinen);
65        ruudut.SetTileMethod(Color.Rose, LisaaPunTaso);
66
67        //3. Execute luo kentän
68        //   Parametreina leveys ja korkeus
69        ruudut.Execute(100, 100);
70
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.Color = Color.Black;
78        Add(taso);
79    }
80   
81
82
83                           
84
85
86    void LisaaTahti(Vector paikka, double leveys, double korkeus)
87    {
88        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
89        tahti.IgnoresCollisionResponse = true;
90        tahti.Position = paikka;
91        tahti.Image = tahtiKuva;
92        tahti.Tag = "tahti";
93        Add(tahti);
94    }
95
96    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
97    {
98        pelaaja1 = new PlatformCharacter(leveys, korkeus);
99        pelaaja1.Position = paikka;
100        pelaaja1.Mass = 1000.0;
101       
102        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
103        Add(pelaaja1);
104        pelaaja1.AnimFall = new Animation(putous);
105     
106        //pelaaja1.AnimWalk = new Animation(kavely);
107
108        //pelaaja1.Weapon = new AssaultRifle(1, 1);
109        //pelaaja1.Weapon.Ammo.Value = 1000;
110        //pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
111     
112        //pelaaja1.Weapon.Image = null;
113       
114    }
115    //void AmmuAseella(PlatformCharacter pelaaja)
116    //{
117        //PhysicsObject ammus = pelaaja.Weapon.Shoot();
118
119        //if (ammus != null)
120        //{
121            //ammus.Size *= 3;
122            //ammus.Image = ...
123            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
124        //}
125    //}
126    //void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
127    //{
128        //ammus.Destroy();
129    //}
130    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
131    {
132        PlatformCharacter pahis = new PlatformCharacter(leveys, korkeus);
133        Add(pahis);
134
135        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
136        tasoAivot.Speed = 100;
137        pahis.Brain = tasoAivot;
138        pahis.Tag = "vihollinen";
139       
140    }
141    void LisaaPunTaso(Vector paikka, double leveys, double korkeus)
142    {
143        PhysicsObject PunTaso = PhysicsObject.CreateStaticObject(leveys, korkeus);
144        PunTaso.Position = paikka;
145        PunTaso.Color = Color.Red;
146        Add(PunTaso);
147
148    }
149    void HeitaKranaatti(PlatformCharacter pelaaja)
150    {
151        Grenade kranu = new Grenade(4.0);
152        pelaaja.Throw(kranu, Angle.FromDegrees(50), 10000);
153        kranu.Explosion.ShockwaveReachesObject += KranaattiOsui;
154        kranu.Explosion.AddShockwaveHandler("vihollinen", KranaattiOsui);
155    }
156    void KranaattiOsui(IPhysicsObject rajahdyksenKohde, Vector v)
157    {
158        rajahdyksenKohde.Destroy();
159    }
160         
161   
162    void LisaaNappaimet()
163    {
164        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
165        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
166
167        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
168        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
169        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
170        Keyboard.Listen(Key.Space, ButtonState.Pressed, HeitaKranaatti, "Heittää Kranaatin", pelaaja1);
171        //Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
172
173        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
174
175        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
176        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
177        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
178
179        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
180    }
181         
182
183
184    void Liikuta(PlatformCharacter  hahmo, double nopeus)
185    {
186        hahmo.Walk(nopeus);
187    }
188
189    void Hyppaa(PlatformCharacter hahmo, double nopeus)
190    {
191        hahmo.Jump(nopeus);
192    }
193
194    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
195    {
196        maaliAani.Play();
197        MessageDisplay.Add("Löytö");
198        tahti.Destroy();
199    }
200   
201}
Note: See TracBrowser for help on using the repository browser.