1 | using System; |
---|
2 | using System.Collections.Generic; |
---|
3 | using Jypeli; |
---|
4 | using Jypeli.Assets; |
---|
5 | using Jypeli.Controls; |
---|
6 | using Jypeli.Effects; |
---|
7 | using Jypeli.Widgets; |
---|
8 | |
---|
9 | public class Pong : PhysicsGame |
---|
10 | { |
---|
11 | PhysicsObject pelaaja; |
---|
12 | public override void Begin() |
---|
13 | { |
---|
14 | //bit.ly/pelikurssi |
---|
15 | |
---|
16 | LuoMontaPalloa(); |
---|
17 | pelaaja = LuoPallo(0, 0, Shape.Triangle, Color.Emerald); |
---|
18 | pelaaja.Width = 100; |
---|
19 | pelaaja.MakeStatic(); |
---|
20 | pelaaja.IgnoresGravity = true; |
---|
21 | |
---|
22 | |
---|
23 | AddCollisionHandler(pelaaja, "pallo", SyoPallo); |
---|
24 | AddCollisionHandler(pelaaja, "pieni", CollisionHandler.DestroyTarget); |
---|
25 | Mouse.ListenMovement(0.01, HiiriLiikkuu, "Seurataan hiiren liikettä, jotta kolmiota voi liikuttaa"); |
---|
26 | |
---|
27 | // pallo.Color = Color.Red; |
---|
28 | Level.Background.CreateGradient(Color.Black, Color.Blue); |
---|
29 | |
---|
30 | Gravity = new Vector(0, -500); |
---|
31 | |
---|
32 | Level.CreateBorders(); |
---|
33 | |
---|
34 | PhoneBackButton.Listen(ConfirmExit, "Lopeta peli"); |
---|
35 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); |
---|
36 | } |
---|
37 | |
---|
38 | |
---|
39 | void AliohjelmanNimi() |
---|
40 | { |
---|
41 | |
---|
42 | } |
---|
43 | |
---|
44 | |
---|
45 | void SyoPallo(PhysicsObject pelaajaHahmo, PhysicsObject kohde) |
---|
46 | { |
---|
47 | PhysicsObject pieni = LuoPallo(kohde.X + 25, kohde.Y, kohde.Shape, kohde.Color); |
---|
48 | pieni.Width = kohde.Width / 3.0; |
---|
49 | pieni.Height = kohde.Height / 3.0; |
---|
50 | pieni.Tag = "pieni"; |
---|
51 | |
---|
52 | PhysicsObject pieni2 = LuoPallo(kohde.X + 25, kohde.Y + 25, kohde.Shape, kohde.Color); |
---|
53 | pieni2.Width = kohde.Width / 3.0; |
---|
54 | pieni2.Height = kohde.Height / 3.0; |
---|
55 | pieni2.Tag = "pieni"; |
---|
56 | |
---|
57 | PhysicsObject pieni3 = LuoPallo(kohde.X, kohde.Y + 25, kohde.Shape, kohde.Color); |
---|
58 | pieni3.Width = kohde.Width / 3.0; |
---|
59 | pieni3.Height = kohde.Height / 3.0; |
---|
60 | pieni3.Tag = "pieni"; |
---|
61 | |
---|
62 | kohde.Destroy(); |
---|
63 | |
---|
64 | } |
---|
65 | |
---|
66 | void HiiriLiikkuu(AnalogState muutos) |
---|
67 | { |
---|
68 | pelaaja.Position = Mouse.PositionOnWorld; |
---|
69 | } |
---|
70 | |
---|
71 | PhysicsObject LuoPallo(double x, double y, Shape muoto, Color vari) |
---|
72 | { |
---|
73 | PhysicsObject pallo = new PhysicsObject(50, 50); |
---|
74 | pallo.Shape = muoto; |
---|
75 | pallo.X = x; |
---|
76 | pallo.Y = y; |
---|
77 | pallo.Color = vari; |
---|
78 | pallo.Tag = "pallo"; |
---|
79 | Add(pallo); |
---|
80 | return pallo; |
---|
81 | } |
---|
82 | |
---|
83 | void LuoMontaPalloa() |
---|
84 | { |
---|
85 | |
---|
86 | for (int i = 0; i < 100; i++) |
---|
87 | { |
---|
88 | double x = RandomGen.NextDouble(Level.Left, Level.Right); |
---|
89 | double y = RandomGen.NextDouble(Level.Bottom, Level.Top); |
---|
90 | LuoPallo(x, y, RandomGen.SelectOne(Shape.Heart, Shape.Octagon, Shape.Hexagon, Shape.Pentagon, Shape.Star), RandomGen.NextColor()); |
---|
91 | } |
---|
92 | |
---|
93 | |
---|
94 | } |
---|
95 | } |
---|