source: 2010/23/leperoih/FysiikkaPeli1/Peli.cs @ 2633

Revision 620, 2.4 KB checked in by leperoih, 10 years ago (diff)

NYT SAIN ANIMAATION TEHTYY KU SE LIIKKUU!!!!!

Line 
1using System; 
2 using Jypeli; 
3 using Jypeli.ScreenObjects; 
4 using Jypeli.Assets; 
5 
6 namespace Tormays 
7{ 
8     public class TormaysEsimerkki : PhysicsGame
9     { 
10             PhysicsObject pallo, maila1, maila2; 
11   
12         protected override void Begin() 
13         { 
14             LuoKentta(); 
15             AloitaPeli(); 
16 
17             Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); 
18             Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä"); 
19         } 
20 
21 
22         void PalloTormasi(PhysicsObject tormaaja, PhysicsObject tormayksenKohde) 
23         { 
24             tormayksenKohde.Color = Color.Red; // Värjätään törmäyksen kohteet punaisella
25             TeePallo(new Vector(RandomGen.NextDouble(Level.Left+40, Level.Right-40),RandomGen.NextDouble(Level.Bottom +40, Level.Top-40))); 
26         } 
27 
28         void TeePallo(Vector paikka) 
29         { 
30             PhysicsObject p = new PhysicsObject(20, 20, Shapes.Circle); 
31             p.Position = paikka; 
32             p.Color = RandomGen.NextColor(); 
33             p.Hit(new Vector(RandomGen.NextDouble(-500, 500), RandomGen.NextDouble(-500, 500))); 
34             AddCollisionHandler(p, PalloTormasi); 
35             Add(p); 
36         } 
37 
38         void LuoKentta() 
39         { 
40             // Luodaan reunat ja laitetaan ne näkyviin
41             Level.CreateBorders(1.0, true); 
42 
43             pallo = new PhysicsObject(40, 40, Shapes.Circle); 
44             Add(pallo); 
45 
46             maila1 = LuoMaila(Level.Left + 20.0, 0.0); 
47             maila2 = LuoMaila(Level.Right - 20.0, 0.0); 
48 
49             // Lisätään pallolle törmäyksenkäsittelijä
50             AddCollisionHandler(pallo, PalloTormasi); 
51 
52         } 
53 
54 
55         PhysicsObject LuoMaila(double x, double y) 
56         { 
57             PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0, Shapes.Rectangle); 
58             maila.X = x; 
59             maila.Y = y; 
60             Add(maila); 
61             return maila; 
62         } 
63 
64         void AloitaPeli() 
65         { 
66             Vector tonaisy = new Vector(500, 0); 
67             
68             // Hit()-metodilla saadaan aikaan hetkellinen, voimakas liike
69             // toinen liikkumiseen liittyvä metodi on Push()
70             pallo.Hit(tonaisy); 
71         } 
72 
73     } 
74 } 
Note: See TracBrowser for help on using the repository browser.