source: 2010/23/lasakauh/Testi/Peli.cs @ 586

Revision 586, 4.4 KB checked in by lasakauh, 10 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6
7namespace Testi
8{
9    class Tasohyppely : PhysicsGame
10    {
11        const double nopeus = 100;
12        const double hyppyVoima = 2000;
13
14        PlatformCharacter pelaaja1;
15        PlatformCharacter pelaaja2;
16       
17
18        protected override void Begin()
19        {
20            Level.Width = 300;
21            Level.Height = 300;
22            Camera.ZoomFactor = 4.8;
23
24            //Camera.StayInLevel = true;
25
26            luoKentta();
27            Gravity = new Vector(0, -1000);
28            lisaaNappaimet();
29        }
30
31        void luoKentta()
32        {
33            Level.CreateBorders();
34            Level.Background.CreateGradient(Color.Black,Color.DarkBlue);
35
36            lisaaMaaTaso(0, -92);
37            lisaaMaaTaso(192, -92);
38            lisaaMaaTaso(128, -92);
39            lisaaMaaTaso(64, -92);
40            lisaaMaaTaso(-192, -92);
41            lisaaMaaTaso(-128, -92);
42            lisaaMaaTaso(-64, -92);
43            lisaaPelaajat();
44            lisaaPelaaja2();
45        }
46
47        void lisaaMaaTaso(double x, double y)
48        {
49            PhysicsObject taso = PhysicsObject.CreateStaticObject(64, 5);
50            taso.Image = LoadImage("taso_maa");
51            taso.X = x;
52            taso.Y = y;
53            Add(taso);
54        }
55
56        void lisaaSeina(double x,double y)
57        {
58            PhysicsObject taso = PhysicsObject.CreateStaticObject(10, 30);
59            taso.Image = LoadImage("taso_pystyseina");
60            taso.X = x;
61            taso.Y = y;
62            Add(taso);
63        }
64
65        void hpbar(double player)
66        {
67            PhysicsObject hpbar = new PhysicsObject(80.0,10.0);
68            hpbar.Image = LoadImage("hpbar.png");
69            Add(hpbar);
70        }
71
72        void lisaaTaso(double x, double y)
73        {
74            PhysicsObject taso = PhysicsObject.CreateStaticObject(30, 10);
75            taso.Image = LoadImage("taso_vaakaseina");
76            taso.X = x;
77            taso.Y = y;
78            Add(taso);
79        }
80
81        void lisaaPelaajat()
82        {
83            pelaaja1 = new PlatformCharacter(10, 20);
84            pelaaja1.Mass = 6.0;
85            pelaaja1.Image = LoadImage("ninja");
86            pelaaja1.X = -140;
87            pelaaja1.Y = Level.Bottom + 100;
88            Add(pelaaja1);
89
90        }
91
92        void lisaaPelaaja2()
93        {
94            pelaaja2 = new PlatformCharacter(10, 20);
95            pelaaja2.Mass = 6.0;
96            pelaaja2.Image = LoadImage("ninja2");
97            pelaaja2.X = 140;
98            pelaaja2.Y = Level.Bottom + 100;
99            Add(pelaaja2);
100        }
101
102        void lisaaNappaimet()
103        {
104            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
105            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
106
107            Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
108            Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
109            Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
110
111            Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
112            Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja2, nopeus);
113            Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
114
115            lisaaGamePadNappaimet(ControllerOne);
116        }
117
118        void lisaaGamePadNappaimet(GamePad controller)
119        {
120            controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
121            controller.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja2, -nopeus);
122            controller.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja2, nopeus);
123            controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja2, hyppyVoima);
124            Vector tatinAsento = ControllerOne.LeftThumbDirection;
125        }
126
127        void liikuta(PlatformCharacter hahmo, double nopeus)
128        {
129            hahmo.Walk(nopeus);
130        }
131
132        void hyppaa(PlatformCharacter hahmo, double voima)
133        {
134            hahmo.Jump(voima);
135        }
136
137    }
138}
Note: See TracBrowser for help on using the repository browser.