source: 2010/24/joaamaka/The hole/Peli.cs @ 891

Revision 891, 4.0 KB checked in by joaamaka, 9 years ago (diff)

Jatkoin oman pelin tekemistä.

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6
7class Tasohyppely : PhysicsGame
8{
9    const double nopeus = 1000;
10    const double hyppyVoima = 10000;
11
12    IntMeter pisteLaskuri;
13    ValueDisplay pisteNaytto;
14
15    PhysicsObject olio;
16
17
18    protected override void Begin()
19    {
20        Level.Width = 1500;
21        Level.Height = 1000;
22
23        // Luodaan pistelaskuri
24        pisteLaskuri = new IntMeter(0);
25
26        // luodaan pistelaskunäyttö
27        pisteNaytto = new ValueDisplay();
28        pisteNaytto.Text = "Syvyys: ";
29        pisteNaytto.X = Screen.RightSafe - 250;
30        pisteNaytto.Y = Screen.TopSafe - 50;
31        Add(pisteNaytto);    // lisätään peliin
32
33        // Zoomataan lähemmäksi
34        Camera.ZoomFactor = 2.0;
35
36        Camera.StayInLevel = true;
37
38        seuraavaKentta();
39        MessageDisplay.Add("Hyppää kuiluun!");
40    }
41
42    void seuraavaKentta()
43    {
44        ClearAll();
45        pisteLaskuri.Reset();
46
47        // Asetetaan painovoima
48        Gravity = new Vector(0, -300);
49
50        luoKentta();
51        lisaaNappaimet();
52        Camera.Follow(olio);
53    }
54
55    void luoKentta()
56    {
57        Level.CreateBorders();
58        Level.Background.CreateGradient(Color.Gray, Color.White);
59
60        lisaaTaso(-100, -20);
61        lisaaTaso(100, -20);
62        lisaaTaso2(0, 50);
63        lisaaTaso3(100,100);
64        lisaaTaso4(100, 100);
65
66        lisaaPelaajat();
67    }
68
69    void lisaaTaso(double x, double y)
70    {
71        PhysicsObject taso = PhysicsObject.CreateStaticObject(30, 150);
72        Image image = Image.CreateGradient(150, 30, Color.White, Color.Gray);
73        taso.Image = image;
74        taso.X = x;
75        taso.Y = y;
76        Add(taso);
77    }
78   
79    void lisaaTaso2(double x, double y)
80    {
81        PhysicsObject taso = PhysicsObject.CreateStaticObject(250, 30);
82        Image image = Image.CreateGradient(150, 30, Color.White, Color.Gray);
83        taso.Image = image;
84        taso.X = x;
85        taso.Y = y;
86        Add(taso);
87    }
88
89    void lisaaTaso3(double x, double y)
90    {
91        PhysicsObject taso = PhysicsObject.CreateStaticObject(75, 100);
92        Image image = Image.CreateGradient(150, 30, Color.White, Color.Gray);
93        taso.Image = image;
94        taso.IgnoresCollisionResponse = true;
95        taso.X = -100;
96        taso.Y = 200;
97        taso.Image = LoadImage("nuoli");
98        Add(taso);
99    }
100
101    void lisaaTaso4(double x, double y)
102    {
103        PhysicsObject taso = PhysicsObject.CreateStaticObject(75, 100);
104        Image image = Image.CreateGradient(150, 30, Color.White, Color.Gray);
105        taso.Image = image;
106        taso.IgnoresCollisionResponse = true;
107        taso.X = 100;
108        taso.Y = 200;
109        taso.Image = LoadImage("nuoli2");
110        Add(taso);
111    }
112
113    void lisaaPelaajat()
114    {
115        olio = new PhysicsObject(40, 40);
116        olio.Shape = Shapes.Rectangle;
117        olio.Color = Color.Black;
118        olio.Size = new Vector(40, 40);
119        olio.Y = 100;
120
121        Add(olio);
122    }
123
124    void lisaaPiikit()
125    {
126        PhysicsObject piikit = new PhysicsObject(50, 50, Shapes.Rectangle);
127        piikit.X = 100;
128        piikit.Y = 50;
129        piikit.Image = LoadImage("Spikes");
130        Add(piikit);
131    }
132
133    void lisaaNappaimet()
134    {
135        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
136        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
137
138        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", olio, -nopeus);
139        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", olio, nopeus);
140        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", olio, hyppyVoima);
141    }
142
143
144    void liikuta(PhysicsObject hahmo, double nopeus)
145    {
146        hahmo.Push(new Vector (nopeus, 0));
147    }
148
149    void hyppaa(PhysicsObject hahmo, double voima)
150    {
151        hahmo.Push(new Vector (0, voima));
152    }
153}
Note: See TracBrowser for help on using the repository browser.