source: 2010/30/alsiseoi/WorldOfBallcraft/Peli.cs @ 1395

Revision 1395, 5.3 KB checked in by alsiseoi, 13 years ago (diff)

Nuotion pohja valmis.

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using Jypeli.Effects;
6
7public class Peli : PhysicsGame
8{
9    PhysicsObject Player1;
10    PhysicsObject Player2;
11   
12    PhysicsObject VasenReuna;
13    PhysicsObject OikeaReuna;
14    PhysicsObject YlaReuna;
15    PhysicsObject AlaReuna;
16
17    Vector NopeusYlos = new Vector(0, 200);
18    Vector NopeusAlas = new Vector(0, -200);
19    Vector NopeusOikealle = new Vector(200, 0);
20    Vector NopeusVasemmalle = new Vector(-200, 0);
21
22    Image olionKuva = LoadImage("nuotio");
23
24    protected override void Begin()
25    {
26        LuoKentta();
27        AsetaOhjaimet();
28        LuoEfekti();
29    }
30
31    PhysicsObject LuoPelaaja(double x, double y, double koko, Color vari)
32    {
33        PhysicsObject pelaaja = new PhysicsObject(koko, koko, Shapes.Circle);
34        pelaaja.Color = vari;
35        pelaaja.X = x;
36        pelaaja.Y = y;
37        Add(pelaaja);
38        AddCollisionHandler(pelaaja, KasittelePelaajanTormays);
39        return pelaaja;
40    }
41
42    void LuoKentta()
43    {
44        Level.BackgroundColor = new Color (62, 102, 55);
45
46        Player1 = LuoPelaaja(300, 100, 40, new Color (1, 14, 105));
47
48        Player2 = LuoPelaaja(300, 200, 40, new Color (64, 0, 0));
49       
50        Camera.ZoomToLevel();
51        //Camera.ZoomFactor = 1.5;
52
53        VasenReuna = Level.CreateLeftBorder();
54        VasenReuna.Restitution = 0.0;
55        VasenReuna.IsVisible = true;
56
57        OikeaReuna = Level.CreateRightBorder();
58        OikeaReuna.Restitution = 0.0;
59        OikeaReuna.IsVisible = true;
60
61        YlaReuna = Level.CreateTopBorder();
62        YlaReuna.Restitution = 0.0;
63        YlaReuna.IsVisible = true;
64
65        AlaReuna = Level.CreateBottomBorder();
66        AlaReuna.Restitution = 0.0;
67        AlaReuna.IsVisible = true;
68
69        PhysicsObject Vihollinen = new PhysicsObject(30.0, 20.0);
70        Vihollinen.Color = Color.GreenYellow;
71        Vihollinen.X = 100;
72        Vihollinen.Y = 150;
73        Vihollinen.Tag = "Osuma";
74        Add(Vihollinen);
75
76        RandomMoverBrain satunnaisAivot = new RandomMoverBrain();
77        Vihollinen.Brain = satunnaisAivot;
78
79        PhysicsObject nuotio = PhysicsObject.CreateStaticObject(70.0, 70.0);
80        nuotio.X = 300;
81        nuotio.Y = -200;
82        nuotio.Image = olionKuva;
83        Add(nuotio);
84    }
85
86    void AsetaOhjaimet()
87    {
88        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Player1: Liikuta pelaajaa ylös", Player1, NopeusYlos);
89        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, Player1, Vector.Zero);
90        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Player1: Liikuta pelaajaa alas", Player1, NopeusAlas);
91        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, Player1, Vector.Zero);
92        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Player1: Liikuta pelaajaa oikealle", Player1, NopeusOikealle);
93        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, Player1, Vector.Zero);
94        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Player1: Liikuta pelaajaa vasemmalle", Player1, NopeusVasemmalle);
95        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, Player1, Vector.Zero);
96
97        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Player2: Liikuta pelaajaa ylös", Player2, NopeusYlos);
98        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, Player2, Vector.Zero);
99        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Player2: Liikuta pelaajaa alas", Player2, NopeusAlas);
100        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, Player2, Vector.Zero);
101        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Player2: Liikuta pelaajaa oikealle", Player2, NopeusOikealle);
102        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, Player2, Vector.Zero);
103        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Player1: Liikuta pelaajaa vasemmalle", Player2, NopeusVasemmalle);
104        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, Player2, Vector.Zero);
105
106        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
107        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
108    }
109
110    void AsetaNopeus(PhysicsObject pelaaja, Vector suunta)
111    {
112        pelaaja.Velocity = suunta;
113        //pelaaja.Push(suunta);
114    }
115
116    void KasittelePelaajanTormays(PhysicsObject pelaaja, PhysicsObject kohde )
117    {
118        if (pelaaja == Player1)
119        {
120            if (kohde.Tag.ToString() == "Osuma")
121            {
122                Player1.Destroy();
123            }
124        }
125
126        if (pelaaja == Player2)
127        {
128            if (kohde.Tag.ToString() == "Osuma")
129            {
130                Player2.Destroy();
131            }
132        }
133    }
134
135    void LuoEfekti()
136    {
137        int pMaxMaara = 200;
138        ExplosionSystem rajahdys = new ExplosionSystem(LoadImage("testi"), pMaxMaara);
139        Add(rajahdys);
140        double x = 0;
141        double y = 0;
142        int pMaara = 10;
143        rajahdys.AddEffect(x, y, pMaara);
144
145        Flames liekki = new Flames("tulitest", 25, Angle 90);
146        liekki.Position = new Vector(300, -200);
147        Add(liekki);
148
149
150    }
151}
152
Note: See TracBrowser for help on using the repository browser.