source: 2016/26/MikkoJ/NakkiPaukku/NakkiPaukku/NakkiPaukku/NakkiPaukku.cs @ 7590

Revision 7590, 6.2 KB checked in by mijuntti, 5 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 NakkiPaukku : PhysicsGame
10{
11    Image kenttamuoto = LoadImage("Kentta.png");
12
13    PhysicsObject[] pelaajat = new PhysicsObject[4];
14
15    const double ukkelinopeus = 250;
16    Vector nopeusYlos = new Vector(0, ukkelinopeus);
17    Vector nopeusAlas = new Vector(0, -ukkelinopeus);
18    Vector nopeusVasen = new Vector(-ukkelinopeus, 0);
19    Vector nopeusOikea = new Vector(ukkelinopeus, 0);
20
21    public override void Begin()
22    {
23        LuoMailma();
24        AsetaOhjaimet();
25       
26
27
28    }
29    void LuoMailma()
30    {
31        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kentta");
32
33       
34       
35        ruudut.SetTileMethod(Color.Black, LuoTaso);
36        ruudut.SetTileMethod(Color.FromHexCode("FFEA00"), LuoPelaaja, 0);
37        ruudut.SetTileMethod(Color.Red, LuoPelaaja, 1);
38        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoPelaaja, 2);
39        ruudut.SetTileMethod(Color.FromHexCode("4CFF00"), LuoPelaaja, 3);
40       
41
42
43        ruudut.Execute(10.0, 10.0);
44    }
45    void LuoTaso(Vector paikka, double leveys, double korkeus)
46    {
47        PhysicsObject kentta = PhysicsObject.CreateStaticObject(leveys, korkeus);
48        kentta.Position = paikka;
49        kentta.Color = Color.Black;
50        Add(kentta);
51
52        Level.Background.Color = Color.White;
53        Camera.ZoomToLevel();
54        IsFullScreen = true;
55    }
56    void LuoPelaaja(Vector paikka, double leveys, double korkeus, int paikkaNumero)
57    {
58        PhysicsObject pelaaja = new PhysicsObject(leveys * 0.65, korkeus * 0.65);
59        pelaaja.Shape = Shape.Circle;
60        pelaaja.X = paikka.X;
61        pelaaja.Y = paikka.Y;
62        pelaaja.Color = Color.HotPink;
63        pelaaja.LinearDamping = 0.1;
64        Add(pelaaja);
65        pelaajat[paikkaNumero] = pelaaja; //Luo pelaajat 1, 2, 3 & 4 nimisiin muuttujiin
66    }
67    void AsetaOhjaimet()
68    {
69        Keyboard.Listen(Key.S,          ButtonState.Down, AsetaNopeus,"", pelaajat[0], nopeusAlas);
70        Keyboard.Listen(Key.W,          ButtonState.Down, AsetaNopeus,"", pelaajat[0], nopeusYlos); 
71        Keyboard.Listen(Key.A,          ButtonState.Down, AsetaNopeus,"", pelaajat[0], nopeusVasen);
72        Keyboard.Listen(Key.D,          ButtonState.Down, AsetaNopeus,"", pelaajat[0], nopeusOikea);
73        Keyboard.Listen(Key.Q,          ButtonState.Pressed, PudotaNakki, "", pelaajat[0]);
74
75        Keyboard.Listen(Key.Up,         ButtonState.Down, AsetaNopeus,"", pelaajat[1], nopeusYlos);
76        Keyboard.Listen(Key.Down,       ButtonState.Down, AsetaNopeus,"", pelaajat[1], nopeusAlas);
77        Keyboard.Listen(Key.Left,       ButtonState.Down, AsetaNopeus,"", pelaajat[1], nopeusVasen);
78        Keyboard.Listen(Key.Right,      ButtonState.Down, AsetaNopeus,"", pelaajat[1], nopeusOikea);
79        Keyboard.Listen(Key.NumPad0,    ButtonState.Pressed, PudotaNakki, "", pelaajat[1]);
80
81        Keyboard.Listen(Key.NumPad8,    ButtonState.Down, AsetaNopeus,"", pelaajat[2], nopeusYlos);
82        Keyboard.Listen(Key.NumPad5,    ButtonState.Down, AsetaNopeus,"", pelaajat[2], nopeusAlas);
83        Keyboard.Listen(Key.NumPad4,    ButtonState.Down, AsetaNopeus,"", pelaajat[2], nopeusVasen);
84        Keyboard.Listen(Key.NumPad6,    ButtonState.Down, AsetaNopeus,"", pelaajat[2], nopeusOikea);
85        Keyboard.Listen(Key.NumPad7,    ButtonState.Pressed, PudotaNakki, "", pelaajat[2]);
86
87        Keyboard.Listen(Key.I,          ButtonState.Down, AsetaNopeus,"", pelaajat[3], nopeusYlos);
88        Keyboard.Listen(Key.K,          ButtonState.Down, AsetaNopeus,"", pelaajat[3], nopeusAlas);
89        Keyboard.Listen(Key.J,          ButtonState.Down, AsetaNopeus,"", pelaajat[3], nopeusVasen);
90        Keyboard.Listen(Key.L,          ButtonState.Down, AsetaNopeus,"", pelaajat[3], nopeusOikea);
91        Keyboard.Listen(Key.U,          ButtonState.Pressed, PudotaNakki,"", pelaajat[3]);
92       
93        Keyboard.Listen(Key.W,          ButtonState.Released, AsetaNopeus, null, pelaajat[0], Vector.Zero);
94        Keyboard.Listen(Key.S,          ButtonState.Released, AsetaNopeus, null, pelaajat[0], Vector.Zero);
95        Keyboard.Listen(Key.A,          ButtonState.Released, AsetaNopeus, null, pelaajat[0], Vector.Zero);
96        Keyboard.Listen(Key.D,          ButtonState.Released, AsetaNopeus, null, pelaajat[0], Vector.Zero);
97        Keyboard.Listen(Key.Up,         ButtonState.Released, AsetaNopeus, null, pelaajat[1], Vector.Zero);
98        Keyboard.Listen(Key.Down,       ButtonState.Released, AsetaNopeus, null, pelaajat[1], Vector.Zero);
99        Keyboard.Listen(Key.Left,       ButtonState.Released, AsetaNopeus, null, pelaajat[1], Vector.Zero);
100        Keyboard.Listen(Key.Right,      ButtonState.Released, AsetaNopeus, null, pelaajat[1], Vector.Zero);
101        Keyboard.Listen(Key.NumPad8,    ButtonState.Released, AsetaNopeus, null, pelaajat[2], Vector.Zero);
102        Keyboard.Listen(Key.NumPad5,    ButtonState.Released, AsetaNopeus, null, pelaajat[2], Vector.Zero);
103        Keyboard.Listen(Key.NumPad4,    ButtonState.Released, AsetaNopeus, null, pelaajat[2], Vector.Zero);
104        Keyboard.Listen(Key.NumPad6,    ButtonState.Released, AsetaNopeus, null, pelaajat[2], Vector.Zero);
105        Keyboard.Listen(Key.I,          ButtonState.Released, AsetaNopeus, null, pelaajat[3], Vector.Zero);
106        Keyboard.Listen(Key.K,          ButtonState.Released, AsetaNopeus, null, pelaajat[3], Vector.Zero);
107        Keyboard.Listen(Key.J,          ButtonState.Released, AsetaNopeus, null, pelaajat[3], Vector.Zero);
108        Keyboard.Listen(Key.L,          ButtonState.Released, AsetaNopeus, null, pelaajat[3], Vector.Zero);
109       
110    }
111    void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus)
112    {
113        pelaaja.Hit(nopeus);
114    }
115    void PudotaNakki(PhysicsObject pelaaja)
116    {
117        PhysicsObject nakki = new PhysicsObject(1, 1);
118        nakki.Position = pelaaja.Position;
119        nakki.Color = Color.Blue;
120        Explosion rajahdys = new Explosion(5);
121        rajahdys.Position = pelaaja.Position;
122        rajahdys.Force = 0.0;
123
124        Add(rajahdys);
125        Add(nakki);
126    }
127}
Note: See TracBrowser for help on using the repository browser.