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

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