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

Revision 1385, 4.6 KB checked in by alsiseoi, 13 years ago (diff)

Vihollinen on tappava ja liikkuu.

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