source: 2010/27/viaawipi/samsh cubes/Peli.cs @ 1151

Revision 1151, 5.2 KB checked in by paaaanro, 10 years ago (diff)

smash cubes alkoi

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using Jypeli.Effects;
6
7
8class Tasohyppely : PhysicsGame
9{
10    const int rulev = 50;
11    const int rukor = 50;
12    const double nopeus = 200;
13    const double hyppyVoima = 3000;
14
15    IntMeter pisteLaskuri;
16    Label pisteNaytto;
17
18    PlatformCharacter pelaaja1;
19    PlatformCharacter pelaaja2;
20
21
22    protected override void Begin()
23    {
24        Level.Width = 2000;
25        Level.Height = 1000;
26
27        pisteLaskuri = new IntMeter(0);
28
29        // Zoomataan lähemmäksi
30        Camera.ZoomToLevel();
31        Camera.StayInLevel = true;
32
33        seuraavaKentta();
34    }
35
36    void seuraavaKentta()
37    {
38       
39        // Asetetaan painovoima
40        Gravity = new Vector(0, -1000);
41
42        // luodaan pistelaskunäyttö
43        pisteNaytto = new Label();
44        pisteNaytto.X = Screen.RightSafe - 250;
45        pisteNaytto.Y = Screen.TopSafe - 50;
46        pisteNaytto.BindTo(pisteLaskuri);
47        Add(pisteNaytto);
48
49        luoKentta();
50        lisaaNappaimet();
51        Camera.Follow(pelaaja1);
52    }
53
54    void luoKentta()
55    {
56        TileMap ruudut = TileMap.FromFile("kentta.txt");
57        ruudut['#'] = Luotaso;
58        ruudut.Insert(rulev, rukor);
59
60        Level.CreateBorders();
61        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
62        Level.Background.Image = LoadImage("aa");
63
64
65        lisaaPelaajat();
66    }
67
68    PhysicsObject Luotaso()
69    {
70        PhysicsObject taso = PhysicsObject.CreateStaticObject(50.0, 50.0);
71        return taso;
72    }
73
74    void lisaaPelaajat()
75    {
76        pelaaja1 = new PlatformCharacter(40, 40);
77        pelaaja1.Mass = 4.0;
78        pelaaja1.Image = LoadImage("aa");
79        pelaaja1.X = 100;
80        pelaaja1.Y =120;
81       
82        pelaaja2 = new PlatformCharacter(40, 40);
83        pelaaja2.Mass = 4.0;
84        pelaaja2.Image = LoadImage("ss");
85        pelaaja2.X = -100;
86        pelaaja2.Y =120;
87
88        AddCollisionHandler(pelaaja1, PelaajaOsuu);
89        AddCollisionHandler(pelaaja2, PelaajaOsuu);
90
91        Add(pelaaja1);
92        Add(pelaaja2);
93    }
94
95    void lisaaNappaimet()
96    {
97        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
98        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
99
100        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
101        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
102        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima);
103        Keyboard.Listen(Key.P, ButtonState.Pressed, poks1, "rajauta");
104        Keyboard.Listen(Key.O, ButtonState.Pressed, poks2, "rajauta");
105        Keyboard.Listen(Key.I, ButtonState.Pressed, HeitaKranaatti , "rajauta");
106
107        Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
108        Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja2, nopeus);
109        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyVoima);
110
111
112        lisaaGamePadNappaimet(ControllerOne);
113    }
114
115    void lisaaGamePadNappaimet(GamePad controller)
116    {
117        controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
118
119        controller.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
120        controller.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
121        controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyVoima);
122    }
123
124    void liikuta(PlatformCharacter hahmo, double nopeus)
125    {
126        hahmo.Walk(nopeus);
127    }
128
129    void hyppaa(PlatformCharacter hahmo, double voima)
130    {
131        hahmo.Jump(voima);
132    }
133
134    void PelaajaOsuu(PhysicsObject collidingObject, PhysicsObject pum)
135    {
136   
137    }
138    void poks1()
139    {
140        Explosion rajahdys = new Explosion(10.0);
141        rajahdys.Position = pelaaja2.Position;
142        rajahdys.X-=40;
143        rajahdys.Y -= 25;
144        rajahdys.Speed = 1000.0;
145        rajahdys.Force =50;
146        rajahdys.ShockwaveColor = Color.Cyan;
147        Add(rajahdys);
148    }
149         void poks2()
150    {
151        Explosion rajahdys = new Explosion(10.0);
152        rajahdys.Position = pelaaja1.Position;
153        rajahdys.Y -= 15;
154        rajahdys.Speed = 1000.0;
155        rajahdys.Force =50;
156        rajahdys.ShockwaveColor = Color.Red;
157        Add(rajahdys);
158    }
159         void pumpum ()
160         {
161          PhysicsObject pum = PhysicsObject.CreateStaticObject(20.0, 20.0);
162          pum.Position = pelaaja2.Position;
163          pum.Shape = Shapes.Circle;
164          Add(pum);
165         }
166         void HeitaKranaatti()
167         {
168             ClusterGrenade kranaatti = new ClusterGrenade(4.0, 2);
169             kranaatti.X = pelaaja1.X;
170             kranaatti.Y = pelaaja1.Y;
171             Add(kranaatti);
172             Vector heittoVoima = Vector.FromLengthAndAngle(10, Angle.Degrees(0));
173             kranaatti.Hit(heittoVoima); 
174         }
175}
Note: See TracBrowser for help on using the repository browser.