source: 2012/30/JesseN/Oma peli/OmaPeli/OmaPeli/OmaPeli/OmaPeli.cs @ 3751

Revision 3751, 8.5 KB checked in by anlakane, 10 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class OmaPeli : PhysicsGame
10{
11    HahmoClass hahmo;
12    Image hahmostand = LoadImage("CharStand32");
13    Image[] hahmojuoksu = LoadImages("CharRun1", "CharRun2", "CharRun3");
14    Image hahmojump = LoadImage("CharJump");
15    Image hahmofall = LoadImage("CharJump");
16    Image panos = LoadImage("Bullet");
17    Image tahtaa = LoadImage("CharShoot32bit");
18    Image[] flyer = LoadImages("EnemyFlying1", "EnemyFlying2", "EnemyFlying3", "EnemyFlying4");
19
20    Image vesiblock = LoadImage("Water");
21    Image puublock = LoadImage("Wood");
22    Image ruohoblock = LoadImage("Grass");
23    Image multablock = LoadImage("Dirt");
24    Image lehdetblock = LoadImage("Leaves");
25    Image panos2 = LoadImage("Bullet2");
26    Image kiviblock = LoadImage("Stone");
27
28
29   
30
31
32    public override void Begin()
33    {
34        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
35"Aloita peli", "Parhaat pisteet", "Lopeta");
36        Add(alkuValikko);
37
38        alkuValikko.ItemSelected += PainettiinValikonNappia;
39
40
41
42
43
44
45
46
47
48        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
49        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
50    }
51
52    void PainettiinValikonNappia(int valinta)
53    {
54        switch (valinta)
55        {
56            case 0:
57                Luokentta();
58                break;
59            case 1:
60                Exit();
61                break;
62
63
64        }
65    }
66
67    void Luokentta()
68    {
69       
70
71
72
73        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Level1");
74
75        ruudut.SetTileMethod(Color.BrightGreen, LuoRuoho);
76        ruudut.SetTileMethod(Color.Cyan, LuoVesi);
77        ruudut.SetTileMethod(Color.Red, LuoVihollinen);
78        ruudut.SetTileMethod(Color.DarkBlue, LuoLehdet);
79        ruudut.SetTileMethod(Color.HanPurple, LuoPuu);
80        ruudut.SetTileMethod(Color.Black, LuoMulta);
81        ruudut.SetTileMethod(Color.Orange, LuoPelaaja);
82        ruudut.SetTileMethod(Color.Rose, LuoKivi);
83
84
85        ruudut.Execute(45, 45);
86
87        //Level.AmbientLight = 1.0;
88
89        //Light valo = new Light();
90        //valo.Intensity = 0.8;
91        //valo.Distance = 150;
92        //valo.Position = hahmo.Position;
93        //Add(valo);
94        //int pMaxMaara = 200;
95        //ExplosionSystem rajahdys = new ExplosionSystem(LoadImage(""), pMaxMaara);
96        //Add(rajahdys);
97    }
98
99    void LuoKivi(Vector paikka, double leveys, double korkeus)
100    {
101        PhysicsObject kivi = PhysicsObject.CreateStaticObject(leveys, korkeus);
102        kivi.Position = paikka;
103        kivi.Image = kiviblock;
104        kivi.CollisionIgnoreGroup = 1;
105        Add(kivi);
106
107    }
108
109    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
110    {
111        hahmo = new HahmoClass(48, 48);
112        hahmo.AnimWalk = new Animation(hahmojuoksu);
113        hahmo.AnimWalk.FPS = 10;
114        hahmo.AnimIdle = new Animation(hahmostand);
115        hahmo.AnimJump = new Animation(hahmojump);
116        hahmo.AnimFall = new Animation(hahmofall);
117        hahmo.Weapon = new LaserGun(30, 30);
118        hahmo.Weapon.Ammo.Value = 10000;
119        hahmo.Weapon.Image = null;
120        hahmo.Weapon.Color = Color.Transparent;
121        hahmo.Weapon.Power.DefaultValue = 1000;
122        hahmo.Weapon.CanHitOwner = false;
123        Add(hahmo);
124        hahmo.Position = paikka;
125        Gravity = new Vector(0.0, -1000.0);
126        Ohjaus();
127        Camera.Follow(hahmo);
128
129    }
130
131    void LuoMulta(Vector paikka, double leveys, double korkeus)
132    {
133        PhysicsObject multa = PhysicsObject.CreateStaticObject(leveys, korkeus);
134        multa.Position = paikka;
135        multa.Image = multablock;
136        multa.CollisionIgnoreGroup = 1;
137        Add(multa);
138
139
140
141    }
142
143    void LuoRuoho(Vector paikka, double leveys, double korkeus)
144    {
145        PhysicsObject ruoho = PhysicsObject.CreateStaticObject(leveys, korkeus);
146        ruoho.Position = paikka;
147        ruoho.Image = ruohoblock;
148        ruoho.CollisionIgnoreGroup = 1;
149        Add(ruoho);
150    }
151
152    void LuoPuu(Vector paikka, double leveys, double korkeus)
153    {
154        PhysicsObject puu = PhysicsObject.CreateStaticObject(leveys, korkeus);
155        puu.Position = paikka;
156        puu.Image = puublock;
157        puu.CollisionIgnoreGroup = 1;
158        puu.IgnoresCollisionResponse = true;
159        Add(puu, -1);
160    }
161
162    void LuoLehdet(Vector paikka, double leveys, double korkeus)
163    {
164        PhysicsObject lehdet = PhysicsObject.CreateStaticObject(leveys, korkeus);
165        lehdet.Position = paikka;
166        lehdet.Image = lehdetblock;
167        lehdet.CollisionIgnoreGroup = 1;
168        lehdet.IgnoresCollisionResponse = true;
169        Add(lehdet, -1);
170    }
171
172    void LuoVesi(Vector paikka, double leveys, double korkeus)
173    {
174        PhysicsObject vesi = PhysicsObject.CreateStaticObject(leveys, korkeus);
175        vesi.Position = paikka;
176        vesi.Image = vesiblock;
177        vesi.CollisionIgnoreGroup = 1;
178        vesi.IgnoresCollisionResponse = true;
179        Add(vesi, -1);
180    }
181
182    void LuoVihollinen(Vector paikka, double leveys, double korkeus)
183    {
184        Vihuclass lentava = new Vihuclass(50, 50);
185        lentava.Position = paikka;
186        lentava.Shape = Shape.Circle;
187        FollowerBrain seuraajanAivot1 = new FollowerBrain(hahmo);
188        seuraajanAivot1.Speed = 100;
189        lentava.IgnoresGravity = true;
190        //seuraajanAivot1.DistanceFar = 500;
191        //seuraajanAivot1.DistanceClose = 100;
192        //seuraajanAivot1.StopWhenTargetClose = true;
193        //seuraajanAivot1.TargetClose += vihulahella;
194        lentava.Animation = new Animation(flyer);
195        lentava.Animation.Start();
196        lentava.Animation.FPS = 10;
197        lentava.CanRotate = false;
198        lentava.Brain = seuraajanAivot1;
199        LaserGun lentavagun = new LaserGun(10, 10);
200        lentavagun.Ammo.Value = 10000;
201        //lentavagun.ProjectileCollision = AmmusOsui;
202        lentavagun.Image = null;
203        lentavagun.Color = Color.Transparent;
204        lentava.Tag = "vihollinen";
205       
206        lentava.Add(lentavagun);
207
208        Timer ajastin = new Timer();
209        ajastin.Interval = 1.0;
210        ajastin.Timeout += delegate { VihollinenAmpuu(lentava, lentavagun, ajastin); };
211        ajastin.Start();
212        Add(lentava);
213    }
214
215    void AmmusViholliseen(PhysicsObject ammus, Vihuclass lentava)
216    {
217        lentava.Hitpoints.Value -= 1;
218        //pisteet.value += 1;
219
220    }
221
222    void VihollinenAmpuu(PhysicsObject lentava, LaserGun lentavagun, Timer ajastin)
223    {
224        if (lentava.IsDestroyed == true)
225        {
226            ajastin.Stop();
227            return;
228        }
229
230        Vector suunta = (hahmo.Position - lentava.Position);
231        if (suunta.Magnitude < 600)
232        {
233            lentavagun.Angle = suunta.Angle;
234            PhysicsObject ammus2 = lentavagun.Shoot();
235
236            if (ammus2 != null)
237            {
238                ammus2.Shape = Shape.Circle;
239                ammus2.Size = new Vector(10, 10);
240                ammus2.Image = panos2;
241                AddCollisionHandler(ammus2, CollisionHandler.DestroyObject);
242
243
244
245            }
246        }
247    }
248
249   
250
251    void vihulahella(Vector paikka, double leveys, double korkeus)
252    {
253
254    }
255
256   
257
258    void Ohjaus()
259    {
260        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaHahmoa, "Pelaaja liiku vasemmalle", -400.0);
261        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaHahmoa, "Pelaaja liiku oikealle", 400.0);
262        Keyboard.Listen(Key.Space, ButtonState.Pressed, hyppy, "Pelaaja hyppää", 650.0);
263        Keyboard.Listen(Key.A, ButtonState.Pressed, AmmuAseella, "Ammu", hahmo);
264    }
265
266    void LiikutaHahmoa(double vektori)
267    {
268        hahmo.Walk(vektori);
269    }
270
271    void hyppy(double hyppyvoima)
272    {
273        hahmo.Jump(hyppyvoima);
274    }
275
276    void AmmuAseella(PlatformCharacter hahmo)
277    {
278        PhysicsObject ammus = hahmo.Weapon.Shoot();
279        hahmo.PlayAnimation(tahtaa);
280        //hahmo.Animation = new Animation(tahtaa);
281        //hahmo.Animation.Start(1);
282
283        if (ammus != null)
284        {
285            ammus.Shape = Shape.Circle;
286            ammus.Size = new Vector(10, 10);
287            ammus.Image = panos;
288            AddCollisionHandler(ammus, CollisionHandler.DestroyObject);
289            AddCollisionHandler<PhysicsObject, Vihuclass>(ammus, "vihollinen", AmmusViholliseen);
290        }
291    }
292
293   
294
295}
Note: See TracBrowser for help on using the repository browser.