source: 2017/30/JouniP/Syomispeli/Syomispeli/Syomispeli/Syomispeli.cs @ 9107

Revision 9107, 4.7 KB checked in by nupeohje, 23 months ago (diff)

Pelaaja kutistuu, jos osuu viholliseen.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Syomispeli : PhysicsGame
10{
11    PhysicsObject pelaaja1;
12
13    Image pahiksenNollailukuva = LoadImage("pahisnollailee");
14
15    public override void Begin()
16    {
17
18        LisaaPelaaja1();
19        LisaaOhjaimet();
20
21        //LisaaPahis(100.0, 0.0);
22        //LisaaPahis(-100.0, 0.0);
23        //LisaaPahis(0.0, 200.0);
24
25        for (int i = 0; i < 3; i++)
26        {
27            LisaaPahis(RandomGen.NextDouble(Level.Left, Level.Right), RandomGen.NextDouble(Level.Bottom, Level.Top));
28        }
29
30
31        LuoKentta();
32
33        //LuoPongmaila(200.0, 0.0);
34       
35       
36    }
37
38    void LisaaPahis(double x, double y)
39    {
40        PhysicsObject pahis = new PhysicsObject(40.0, 40.0);
41        pahis.X = x;
42        pahis.Y = y;
43        pahis.CanRotate = false;
44        pahis.Image = pahiksenNollailukuva;
45        pahis.Tag = "ilkee tyyppi";
46        Add(pahis);
47    }
48
49    void LuoKentta()
50    {
51        Level.CreateBorders();
52        Level.Background.CreateGradient(Color.Black, Color.Gray);
53        LisaaRuokapalat();
54
55        //LuoOlio(Shape.Diamond, Color.Blue, 0.0, 0.0);
56        //LuoOlio(Shape.Circle, Color.White, 100.0, 20.0);
57        //LuoOlio(Shape.Rectangle, Color.Brown, 50.0, 150.0);
58
59        //LuoPallo(Color.White, 50.0, 47.8);
60        //LuoPallo(Color.Yellow, 30.0, 30.0);
61        //LuoPallo(Color.Yellow, 70.0, 80.0);
62
63    }
64
65    void LisaaPelaaja1()
66    {
67        pelaaja1 = new PhysicsObject(40.0, 40.0);
68        pelaaja1.CanRotate = false;
69        Add(pelaaja1);
70
71        AddCollisionHandler(pelaaja1, "ruoka", PelaajaKasvaaIsommaksi);
72        AddCollisionHandler(pelaaja1, "ilkee tyyppi", PelaajaTormasiViholliseen);
73    }
74
75    void LisaaRuokapalat()
76    {
77        //LuoSyotavaJuttu(10.0, 10.0);
78        //LuoSyotavaJuttu(90.0, 90.0);
79        //LuoSyotavaJuttu(100.0, 340.0);
80        //LuoSyotavaJuttu(300.0, 390.0);
81        //LuoSyotavaJuttu(200.0, 10.0);
82        //LuoSyotavaJuttu(-200.0, 90.0);
83
84        for (int i = 0; i < 50; i++)
85        {
86            double xKoordinaatti = RandomGen.NextDouble(Level.Left, Level.Right);
87            double yKoordinaatti = RandomGen.NextDouble(Level.Bottom, Level.Top);
88            LuoSyotavaJuttu(xKoordinaatti, yKoordinaatti);
89
90        }
91
92
93    }
94
95    void LisaaOhjaimet()
96    {
97        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000.0, 0.0));
98        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000.0, 0.0));
99        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0.0, 1000.0));
100        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0.0, -1000.0));
101
102        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
103    }
104
105    void LiikutaPelaajaa(Vector vektori)
106    {
107        pelaaja1.Push(vektori);
108    }
109
110    void PelaajaKasvaaIsommaksi(PhysicsObject pelaajaJokaTormasi, PhysicsObject tormayksenKohde)
111    {
112        pelaajaJokaTormasi.Width = pelaajaJokaTormasi.Width + 10.0;
113        pelaajaJokaTormasi.Height = pelaajaJokaTormasi.Height + 10.0;
114
115        tormayksenKohde.Destroy();
116    }
117
118    void PelaajaTormasiViholliseen(PhysicsObject pelaajaJokaTormasi, PhysicsObject vihuJohonTormattiin)
119    {
120        if (pelaajaJokaTormasi.Width - 10.0 <= 0.0 || pelaajaJokaTormasi.Height - 10.0 <= 0.0)
121        {
122            return;
123        }
124        pelaajaJokaTormasi.Width -= 10.0;
125        pelaajaJokaTormasi.Height -= 10.0;
126    }
127    void LuoOlio(Shape muoto, Color vari, double x, double y, double leveys = 40.0, double korkeus = 40.0)
128    {
129        PhysicsObject otus = new PhysicsObject(leveys, korkeus);
130        otus.Shape = muoto;
131        otus.Color = vari;
132        otus.X = x;
133        otus.Y = y;
134        Add(otus);
135    }
136
137    void LuoPallo(Color vari, double x, double y)
138    {
139        LuoOlio(Shape.Circle, vari, x, y);
140    }
141
142    void LuoSyotavaJuttu(double x, double y)
143    {
144        //LuoOlio(Shape.Circle, Color.Yellow, x, y, 10.0, 10.0);
145
146        PhysicsObject syotava = new PhysicsObject(10.0, 10.0);
147        syotava.Shape = Shape.Circle;
148        syotava.Color = Color.Yellow;
149        syotava.X = x;
150        syotava.Y = y;
151        Add(syotava);
152        syotava.Tag = "ruoka";
153
154    }
155
156    void LuoPongmaila(double x, double y)
157    {
158        //PhysicsObject maila = new PhysicsObject(20.0, 80.0);
159        //maila.X = x;
160        //maila.Y = y;
161        //Add(maila);
162
163        LuoOlio(Shape.Rectangle, Color.White, x, y, 20.0, 80.0);
164    }
165}
Note: See TracBrowser for help on using the repository browser.