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

Revision 528, 4.8 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 = 200;
12        const double hyppyVoima = 4000;
13
14        IntMeter pisteLaskuri;
15        ValueDisplay pisteNaytto;
16
17        PlatformCharacter pelaaja1;
18
19        int kenttaNro; // monesko kenttä on menossa
20
21
22        protected override void Begin()
23        {
24            kenttaNro = 0;
25            Level.Width = 384;
26            Level.Height = 500;
27
28            // Luodaan pistelaskuri
29            pisteLaskuri = new IntMeter(0);
30
31            // luodaan pistelaskunäyttö
32            pisteNaytto = new ValueDisplay();
33            pisteNaytto.Text = "Pisteitä: ";
34            pisteNaytto.X = Screen.RightSafe - 250;
35            pisteNaytto.Y = Screen.TopSafe - 50;
36            pisteNaytto.BindTo(pisteLaskuri);
37            Add(pisteNaytto);    // lisätään peliin
38
39            // Zoomataan lähemmäksi
40            Camera.ZoomFactor = 3.5;
41
42            Camera.StayInLevel = true;
43
44            seuraavaKentta();
45        }
46
47        void seuraavaKentta()
48        {
49            ClearAll();
50            pisteLaskuri.Reset();
51
52            kenttaNro += 1; // lisätään kenttänumeroa yhdellä
53            MessageDisplay.Add("Kenttä " + kenttaNro);
54
55            // Asetetaan painovoima
56            Gravity = new Vector(0, -1000);
57
58            luoKentta();
59            lisaaNappaimet();
60            Camera.Follow(pelaaja1);
61        }
62
63        void luoKentta()
64        {
65            Level.CreateBorders();
66            Level.Background.CreateGradient(Color.Black,Color.DarkBlue);
67
68            lisaaMaaTaso(0, -248);
69            lisaaMaaTaso(192, -248);
70            lisaaMaaTaso(128, -248);
71            lisaaMaaTaso(64, -248);
72            lisaaMaaTaso(-192, -248);
73            lisaaMaaTaso(-128, -248);
74            lisaaMaaTaso(-64, -248);
75            lisaaSeina(0, -150);
76            lisaaSeina(0, -120);
77            lisaaSeina(0, -90);
78            lisaaSeina(100, -150);
79            lisaaSeina(100, -120);
80            lisaaSeina(100, -90);
81            lisaaTaso(120, -80);
82            lisaaTaso(-20, -80);
83            lisaaTaso(150, -80);
84            lisaaTaso(-50, -80);
85            lisaaPelaajat();
86        }
87
88        void lisaaMaaTaso(double x, double y)
89        {
90            PhysicsObject taso = PhysicsObject.CreateStaticObject(64, 5);
91            taso.Image = LoadImage("taso_maa");
92            taso.X = x;
93            taso.Y = y;
94            Add(taso);
95        }
96
97        void lisaaSeina(double x,double y)
98        {
99            PhysicsObject taso = PhysicsObject.CreateStaticObject(10, 30);
100            taso.Image = LoadImage("taso_pystyseina");
101            taso.X = x;
102            taso.Y = y;
103            Add(taso);
104        }
105
106        void lisaaTaso(double x, double y)
107        {
108            PhysicsObject taso = PhysicsObject.CreateStaticObject(30, 10);
109            taso.Image = LoadImage("taso_vaakaseina");
110            taso.X = x;
111            taso.Y = y;
112            Add(taso);
113        }
114
115        void lisaaPelaajat()
116        {
117            pelaaja1 = new PlatformCharacter(34/2, 57/2);
118            pelaaja1.Mass = 9.0;
119            pelaaja1.Image = LoadImage("ninja");
120            pelaaja1.X = 0;
121            pelaaja1.Y = Level.Bottom + 20;
122            Add(pelaaja1);
123        }
124
125
126        void lisaaNappaimet()
127        {
128            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
129            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
130
131            Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
132            Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
133            Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
134
135            lisaaGamePadNappaimet(ControllerOne);
136        }
137
138        void lisaaGamePadNappaimet(GamePad controller)
139        {
140            controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
141            controller.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
142            controller.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
143            controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
144            Vector tatinAsento = ControllerOne.LeftThumbDirection;
145        }
146
147        void liikuta(PlatformCharacter hahmo, double nopeus)
148        {
149            hahmo.Walk(nopeus);
150        }
151
152        void hyppaa(PlatformCharacter hahmo, double voima)
153        {
154            hahmo.Jump(voima);
155        }
156    }
157}
Note: See TracBrowser for help on using the repository browser.