source: 2010/23/jealmaki/Save The Civilians/Peli.cs @ 599

Revision 599, 4.9 KB checked in by jealmaki, 11 years ago (diff)

Tein esineitä

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6
7namespace Save_The_Civilians
8{
9    class Tasohyppely : PhysicsGame
10    {
11        const double nopeus = 200;
12        const double hyppyVoima = 5000;
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 = 2000;
26            Level.Height = 1000;
27
28
29           
30
31           
32            // Luodaan pistelaskuri
33            pisteLaskuri = new IntMeter(0);
34
35            // luodaan pistelaskunäyttö
36            pisteNaytto = new ValueDisplay();
37            pisteNaytto.Text = "Pisteitä: ";
38            pisteNaytto.X = Screen.RightSafe - 250;
39            pisteNaytto.Y = Screen.TopSafe - 50;
40            pisteNaytto.BindTo(pisteLaskuri);
41            Add(pisteNaytto);    // lisätään peliin
42
43            // Zoomataan lähemmäksi
44            Camera.ZoomFactor = 2.0;
45
46            Camera.StayInLevel = true;
47
48            seuraavaKentta();
49            MessageDisplay.Add("Etsi olio!");
50        }
51
52        void LuoKolmio(double leveys, double korkeus, int x, int y)
53        {
54            PhysicsObject kolmio = new PhysicsObject(leveys, korkeus);
55            kolmio.Shape = Shapes.Triangle;
56            kolmio.X = x;
57            kolmio.Y = y;
58            Add(kolmio);
59        }
60
61        void seuraavaKentta()
62        {
63            ClearAll();
64            pisteLaskuri.Reset();
65
66            kenttaNro += 1; // lisätään kenttänumeroa yhdellä
67            MessageDisplay.Add("Kenttä " + kenttaNro);
68
69            // Asetetaan painovoima
70            Gravity = new Vector(0, -1000);
71
72            luoKentta();
73            lisaaNappaimet();
74            Camera.Follow(pelaaja1);
75        }
76
77        void luoKentta()
78        {
79            Level.CreateBorders();
80            Level.Background.CreateGradient(Color.Green, Color.Black);
81            lisaaTaso(100, -300);
82            lisaaTaso(100, -200);
83            lisaaTaso(100, -100);
84            lisaaTaso(-100, -300);
85            lisaaTaso(-300, -150);
86            lisaaTaso(0, -300);
87            lisaaTaso(0, -200);
88            lisaaTaso(0, -100);
89            lisaaTaso(100, -500);
90            lisaaTaso(100, -400);
91            lisaaMaali();
92            lisaaPelaajat();
93            lisaaEsine();
94        }
95       
96        void lisaaEsine()
97        {
98            PhysicsObject esine = new PhysicsObject(20, 10);
99            esine.Shape = Shapes.Rectangle;
100
101            Add(esine);
102        }
103
104        void lisaaTaso(double x, double y)
105        {
106            PhysicsObject taso = PhysicsObject.CreateStaticObject(100, 100);
107            taso.Color = Color.Brown;
108            taso.X = x;
109            taso.Y = y;
110            Add(taso);
111        }
112        void lisaaTaso1(double x, double y)
113        {
114            PhysicsObject taso = PhysicsObject.CreateStaticObject(500,10);
115            taso.Color = Color.Brown;
116            taso.X = x;
117            taso.Y = y;
118            Add(taso);
119        }
120       
121        void lisaaPelaajat()
122        {
123            pelaaja1 = new PlatformCharacter(40, 40);
124            pelaaja1.Image = LoadImage("hymiö");
125            pelaaja1.Mass = 4.0;
126            //pelaaja1.;
127            pelaaja1.X = -100;
128            pelaaja1.Y = Level.Bottom + 120;
129
130            AddCollisionHandler(pelaaja1, osuiMaaliin);
131
132            Add(pelaaja1);
133        }
134
135        void lisaaMaali()
136        {
137           
138        }
139
140        void lisaaNappaimet()
141        {
142            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
143            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
144
145            Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
146            Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
147            Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
148
149        }
150
151       
152 
153           
154       
155
156        void liikuta(PlatformCharacter hahmo, double nopeus)
157        {
158            hahmo.Walk(nopeus);
159        }
160
161        void hyppaa(PlatformCharacter hahmo, double voima)
162        {
163            hahmo.Jump(voima);
164        }
165
166        void osuiMaaliin(PhysicsObject collidingObject, PhysicsObject otherObject)
167        {
168            if (otherObject.Tag.ToString() == "maali")
169            {
170                this.PlaySound("maali");
171                int edellisenKentanPisteet = pisteLaskuri.Value;
172                seuraavaKentta();
173                MessageDisplay.Add("Pääsit läpi kentän " + kenttaNro + ". Pisteitä: " + edellisenKentanPisteet);
174            }
175        }
176    }
177}
Note: See TracBrowser for help on using the repository browser.