source: 2016/24/EemeliN/Test/Test/Test/Test.cs @ 7331

Revision 7331, 7.7 KB checked in by eeonilni, 3 years ago (diff)
RevLine 
[7252]1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Test : PhysicsGame
10{
[7292]11    PlatformCharacter Pelaaja1;
12    PlatformCharacter Pelaaja2;
[7331]13    int kenttaNro = 1;
14   
[7292]15
[7331]16    Image pahisKuva = LoadImage("t04_evilrat");
17
[7292]18    private Image[] Animaatio = LoadImages("Abina", "Abinaa");
19    private Image[] Animaatio2 = LoadImages("Pelaaja2", "Pelaaja2a");
20
[7252]21    public override void Begin()
22    {
[7331]23        LuoKentta("Kenttä");
24        SeuraavaKentta();
[7292]25
26        Gravity = new Vector(0, -500);
27
[7331]28        AsetaOhjaimet();
[7292]29
30        Level.CreateBorders();
31        SmoothTextures = true;
32
33        Pelaaja1.Restitution = 1.0;
34        Pelaaja1.Restitution = 1.0;
35
36        GameObject tausta = new GameObject(Level.Width, Level.Height);
37        tausta.Image = LoadImage("Tausta");
38        Add(tausta, -3);
39
[7252]40        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
41        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
42
[7292]43        Camera.Follow(Pelaaja1, Pelaaja2);
44        Camera.StayInLevel = true;
45        Camera.FollowXMargin = 600;
46        Camera.FollowYMargin = 200;
[7252]47    }
48
[7331]49    void LuoKentta(String kentanNimi)
[7252]50    {
[7331]51        ColorTileMap ruudut = ColorTileMap.FromLevelAsset(kentanNimi);
[7252]52        ruudut.SetTileMethod(Color.Red, LuoPelaaja);
53        ruudut.SetTileMethod(Color.Black, LuoTaso);
[7292]54        ruudut.SetTileMethod(Color.Blue, LuoLiekki);
[7331]55        ruudut.SetTileMethod(Color.DarkGreen, LuoPahis);
56        ruudut.SetTileMethod(Color.FromHexCode("FF6A00"), LuoMaali);
57        ruudut.SetTileMethod(Color.FromHexCode("B682FF"), LuoKanuunaVasen);
58        ruudut.SetTileMethod(Color.FromHexCode("FF006E"), LuoKanuunaOikea);
59        ruudut.SetTileMethod(Color.Yellow, LuoTaso2);
[7252]60        ruudut.Execute(40, 40);
61    }
62
[7331]63    void SeuraavaKentta()
64    {
65        ClearAll();
66
67        if (kenttaNro == 1) LuoKentta("Kenttä");
68        else if (kenttaNro == 2) LuoKentta("Kenttä2");
69        else if (kenttaNro > 2) Exit();
70
71        //ColorTileMap ruudut = ColorTileMap.FromLevelAsset(KentanNimi2);
72        //ruudut.SetTileMethod(Color.Yellow, LuoTaso2);
73
74        AsetaOhjaimet();
75
76    }
77
78   
79
80    void AsetaOhjaimet()
81    {
82        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, Pelaaja1, -100.0);
83        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, Pelaaja1, 100.0);
84        Keyboard.Listen(Key.Up, ButtonState.Down, Hyppää, null, Pelaaja1, 250.0);
85
86        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, Pelaaja2, -100.0);
87        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, Pelaaja2, 100.0);
88        Keyboard.Listen(Key.W, ButtonState.Down, Hyppää, null, Pelaaja2, 250.0);
89    }
90
91    void TormasiMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
92    {
93        kenttaNro++;
94        SeuraavaKentta();
95    }
96
97
[7252]98    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
99    {
[7292]100        Pelaaja1 = new PlatformCharacter(leveys * 0.9, korkeus * 0.9);
[7252]101
102        Pelaaja1.Position = paikka;
103
104        Add(Pelaaja1);
105        Pelaaja1.Shape = Shape.Circle;
106        Image olionKuva = LoadImage("Abina");
107        Pelaaja1.Image = olionKuva;
108
[7292]109        Pelaaja2 = new PlatformCharacter(leveys * 0.9, korkeus * 0.9);
[7252]110        Add(Pelaaja2);
111        Pelaaja2.Position = paikka;
112        Pelaaja2.Shape = Shape.Circle;
113        Pelaaja2.Image = LoadImage("pelaaja2");
114
[7292]115        Pelaaja1.AnimWalk = new Animation(Animaatio);
116        Pelaaja1.AnimIdle = new Animation(Animaatio[0]);
[7252]117
[7292]118        Pelaaja2.AnimWalk = new Animation(Animaatio2) { FPS = 5 };
119        Pelaaja2.AnimIdle = new Animation(Animaatio2[0]);
[7252]120
[7292]121        Pelaaja1.Animation = new Animation(Animaatio);
122        Pelaaja2.Animation = new Animation(Animaatio2);
[7252]123
[7292]124        Pelaaja1.CollisionIgnoreGroup = 100;
125        Pelaaja2.CollisionIgnoreGroup = 100;
[7252]126
127    }
128
[7292]129
130
[7252]131    void LuoTaso(Vector paikka, double leveys, double korkeus)
132    {
133        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
134        taso.Position = paikka;
135        taso.CollisionIgnoreGroup = 1;
[7292]136        taso.Image = LoadImage("Maa");
[7252]137        Add(taso);
[7292]138
[7252]139    }
[7331]140    void LuoTaso2(Vector paikka, double leveys, double korkeus)
141    {
142        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
143        taso.Position = paikka;
144        taso.CollisionIgnoreGroup = 1;
145        taso.Image = LoadImage("MeteoriteBrick");
146        Add(taso);
[7252]147
[7331]148    }
[7292]149
[7331]150    void LuoMaali(Vector paikka, double leveys, double korkeus)
151    {
152        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys*3, korkeus*3);
153        taso.Position = paikka;
154        taso.CollisionIgnoreGroup = 1;
155        taso.Image = LoadImage("Maali");
156        Add(taso);
157
158    }
159
160
[7292]161    void LiikutaPelaajaa(PlatformCharacter pelaaja, double nopeus)
[7252]162    {
[7292]163        pelaaja.Walk(nopeus);
[7252]164
165    }
166
[7292]167    void Hyppää(PlatformCharacter pelaaja, double nopeus)
168    {
169        pelaaja.Jump(nopeus);
170
171    }
172
173
174    void LuoLiekki(Vector paikka, double leveys, double korkeus)
175    {
176        Flame liekki = new Flame(LoadImage("Flame"));
177        liekki.Position = paikka;
178        liekki.MaxLifetime = 3;
179        liekki.MaxScale = 100;
180        Add(liekki);
181
182        //int pMaxMaara = 50;
183
184
185    }
186
[7331]187 
188   
189
190    void LuoPahis(Vector paikka, double leveys, double korkeus)
[7292]191    {
[7331]192        PhysicsObject Pahis = new PhysicsObject(leveys, korkeus);
193        Add(Pahis);
194        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
195        satunnaisAivot.ChangeMovementSeconds = 3;
196        Pahis.Brain = satunnaisAivot;
[7292]197
198
[7331]199        Pahis.Image = pahisKuva;
[7292]200    }
[7331]201    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
202    {
203        //ammus.Destroy();
204    }
[7292]205
[7331]206    PhysicsObject LuoKanuuna(Vector paikka, double leveys, double korkeus)
[7292]207    {
[7331]208        PhysicsObject tykkiTorni = new PhysicsObject(leveys, korkeus);
209        tykkiTorni.Position = paikka;
210        tykkiTorni.IsVisible = false;
211        tykkiTorni.MakeStatic();
212        Add(tykkiTorni);
213
214        Image kuva = LoadImage("Deagle");
215        Vector koko = new Vector(kuva.Width, kuva.Height) * 0.2;
216
217        AssaultRifle tykki = new AssaultRifle(koko.X, koko.Y);
218        tykki.ProjectileCollision = AmmusOsui;
219        tykki.Power.Value = 50;
220        tykki.Power.DefaultValue = 50;
221        tykki.FireRate = 5.0;
222        tykki.AmmoIgnoresGravity = true;
223        tykki.CanHitOwner = false;
224        tykki.AttackSound = null;
225        tykki.InfiniteAmmo = true;
226        tykki.MaxAmmoLifetime = TimeSpan.FromSeconds(2);
227        tykki.ProjectileCollision = TykkiAmmusOsui;
228        tykki.Image = kuva;
229
230        tykkiTorni.Add(tykki);
231
232        Timer ajastin = new Timer();
233        ajastin.Interval = 1.5;
234        ajastin.Timeout += delegate
235        {
236            PhysicsObject kuula = tykki.Shoot();
237            if (kuula != null)
238            {
239                kuula.Image = LoadImage("t04_evilrat");
240                kuula.Size *= 3;
241                //boostaa ylös päälläseisottaessa jos kuulan koko = 130=D
242                //.CollisionIgnoreGroup = 30;
243            }
244        };
245        ajastin.Start();
246        return tykkiTorni;
[7292]247    }
[7331]248
249    void LuoKanuunaVasen(Vector paikka, double leveys, double korkeus)
250    {
251        PhysicsObject tykki = LuoKanuuna(paikka, leveys, korkeus);
252        tykki.Angle = Angle.FromDegrees(180);
253    }
254
255    void LuoKanuunaOikea(Vector paikka, double leveys, double korkeus)
256    {
257        LuoKanuuna(paikka, leveys, korkeus);
258    }
259
260    void TykkiAmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
261    {
262        ammus.Destroy();
263        //ammus.CollisionIgnoreGroup = 30;
264    }
[7252]265}
Note: See TracBrowser for help on using the repository browser.