source: 2011/31/AleksiN/workingtitle/workingtitle/Peli.cs @ 2524

Revision 2524, 4.6 KB checked in by alnirham, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    Vector hyppynopeus = new Vector(0, 550);
12    Vector nopeus = new Vector(800, 0);
13   
14    PhysicsObject ukko;
15
16    PhysicsObject palikka;
17    PhysicsObject punpalikka;
18
19    Image reuna = LoadImage ("palikka");
20    Image peruna = LoadImage("peruna");
21
22    public override void Begin()
23    {
24        Gravity = new Vector(0.0, -1000.0);
25
26        hahmot();
27        kontrollit();
28        reunat();
29        kentta();
30
31        Camera.Follow(ukko);
32
33        Level.BackgroundColor = new Color(30, 30, 80);
34
35    }
36
37    void hahmot()
38    {
39        ukko = new PhysicsObject(35,50);
40        ukko.Shape = Shape.Circle;
41        ukko.Color = Color.LimeGreen;
42        //ukko.Image = LoadImage ("peruna");
43        ukko.KineticFriction = 0.7;
44        ukko.Restitution = 0.15;
45        ukko.X = -875.0;
46        ukko.Y = 275.0;
47        AddCollisionHandler(ukko, kuolema);
48       
49        Add(ukko);
50    }
51
52    void reunat()
53    {
54
55        PhysicsObject alareuna = PhysicsObject.CreateStaticObject(3000, 500);
56        alareuna.Y = -575;
57        alareuna.IgnoresGravity = true;
58        alareuna.Image = reuna;
59        Add(alareuna);
60
61        PhysicsObject ylareuna = PhysicsObject.CreateStaticObject(3000, 500);
62        ylareuna.Y = 575;
63        ylareuna.IgnoresGravity = true;
64        ylareuna.Image = reuna;
65        Add(ylareuna);
66
67        PhysicsObject vasenreuna = PhysicsObject.CreateStaticObject(750, 1750);
68        vasenreuna.X = -1775;
69        vasenreuna.IgnoresGravity = true;
70        vasenreuna.Image = reuna;
71        Add(vasenreuna);
72
73        PhysicsObject oikeareuna = PhysicsObject.CreateStaticObject(750, 1750);
74        oikeareuna.X = 1775;
75        oikeareuna.IgnoresGravity = true;
76        oikeareuna.Image = reuna;
77        Add(oikeareuna);
78    }
79
80    void kentta()
81    {
82        palikka = palikat(-805.0, 300.0, 50, 1050);
83        palikka = palikat(-775.0, -210.0, 80, 30);
84        palikka = palikat(-775.0, -90.0, 60, 30);
85        palikka = palikat(-775.0, 30.0, 40, 30);
86        palikka = palikat(-380.0, 150.0, 60, 750);
87        palikka = palikat(-240.0, -190.0, 28, 20);
88        palikka = palikat(-140.0, -60.0, 28, 20);
89        palikka = palikat(-40.0, 70.0, 28, 20);
90        palikka = palikat(-276.0, 170.0, 250, 30);
91        palikka = palikat(150.0, 260.0, 500, 20);
92        palikka = palikat(70, -33, 30, 605);
93        palikka = palikat(-1050, 220, 450, 30);
94        punpalikka = punpalikat(-625.0, -78.0, 60, 490);
95        punpalikka = punpalikat(-600.0, -150.0, 100, 50);
96        punpalikka = punpalikat(-435.0, -150.0, 50, 50);
97        punpalikka = punpalikat(-98.0, -315.0, 305, 20);
98        punpalikka = punpalikat(-285.0, 255.0, 130, 139);
99    }
100
101    PhysicsObject palikat(double x, double y, double width, double height)
102    {
103        PhysicsObject palikka = PhysicsObject.CreateStaticObject(100.0,100.0);
104        palikka.Image = reuna;
105        palikka.X = x;
106        palikka.Y = y;
107        palikka.Width = width;
108        palikka.Height = height;
109        Add(palikka);
110
111        return palikka;
112    }
113    PhysicsObject punpalikat(double x, double y, double width, double height)
114    {
115        PhysicsObject punpalikka = PhysicsObject.CreateStaticObject(100.0,100.0);
116        punpalikka.Color = new Color(128, 0, 0);
117        punpalikka.X = x;
118        punpalikka.Y = y;
119        punpalikka.Width = width;
120        punpalikka.Height = height;
121        punpalikka.Tag = "punpalikka";
122        Add(punpalikka);
123
124        return punpalikka;
125    }
126
127    void kuolema(PhysicsObject pallo, PhysicsObject kohde)
128    {
129        if (kohde.Tag.ToString() == "punpalikka")
130        {
131            //ukko.Position = (-880, 295);
132            ukko.X = -880;
133            ukko.Y = 295;
134        }
135    }
136
137    void kontrollit()
138    {
139        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
140        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
141
142        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", ukko, -nopeus);
143        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", ukko, nopeus);
144        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", ukko, hyppynopeus);
145    }
146   
147    void liikuta(PhysicsObject ukko, Vector nopeus)
148    {
149        ukko.Push(nopeus);
150    }
151
152    void hyppaa(PhysicsObject ukko, Vector hyppynopeus)
153    {
154       
155        ukko.Hit(hyppynopeus);
156    }
157
158}
Note: See TracBrowser for help on using the repository browser.