source: 2016/30/luennot/Pallopeli/Pallopeli/Pallopeli/Pallopeli.cs @ 8130

Revision 8130, 3.2 KB checked in by jotapoti, 7 years ago (diff)

25 satunnaista palloa luotu silmukassa

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Pallopeli : PhysicsGame
10{
11    PhysicsObject pelaaja1;
12    Image pelaajanKuva = LoadImage("pinkman");
13    Image vihollisenKuva = LoadImage("vihu");
14
15    public override void Begin()
16    {
17        SmoothTextures = false;
18
19        Level.CreateBorders();
20
21        // TODO tee 2 tai useampi näitä samanlaisia vihollisia
22        LuoVihollinen();
23
24
25
26        LuoPallo(-100.0, -20.5, Color.HotPink);
27        LuoPallo(200.0, 0.0, Color.MidnightBlue);
28        LuoPallo(150.0, 0.0, Color.Green);
29        LuoPallo(150.0, 400.0, Color.MediumVioletRed);
30
31        for (int i = 0; i < 25; i++)
32        {
33            double satunnainenX = RandomGen.NextDouble(Level.Left + 50.0, Level.Right - 50.0);
34            double satunnainenY = RandomGen.NextDouble(Level.Bottom + 50.0, Level.Top - 50.0);
35            LuoPallo(satunnainenX, satunnainenY, Color.Brown);
36        }
37
38
39        LisaaPelaaja();
40
41        // TODO tee oma aliohjelma nappuloiden asettamiseksi
42        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
43        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
44        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Liiku vasemmalle", new Vector(-1000, 0));
45        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liiku oikealle", new Vector(1000, 0));
46        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Liiku ylös", new Vector(0, 1000));
47        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Liiku alas", new Vector(0, -1000));
48    }
49
50    void LiikutaPelaajaa(Vector vektori)
51    {
52        pelaaja1.Push(vektori);
53    }
54    void LisaaPelaaja()
55    {
56        pelaaja1 = new PhysicsObject(40.0, 40.0);
57        pelaaja1.CanRotate = false;
58        pelaaja1.Image = pelaajanKuva;
59        Add(pelaaja1);
60        AddCollisionHandler(pelaaja1, "pallura", PelaajaTormaaPalloon);
61        AddCollisionHandler(pelaaja1, "vihu", PelaajaTormaaVihuun);
62    }
63
64    void PelaajaTormaaPalloon(PhysicsObject pelaajahahmo, PhysicsObject pallonen)
65    {
66        pallonen.Destroy();
67        pelaajahahmo.Width += 20.0;
68        pelaajahahmo.Height += 20.0;
69    }
70
71    void PelaajaTormaaVihuun(PhysicsObject pelaajahahmo, PhysicsObject pahis)
72    {
73        pahis.Size *= 1.5;
74        pelaajahahmo.Size *= 0.5;
75    }
76
77    void LuoPallo(double xkoordinaatti, double ykoordinaatti, Color vari)
78    {
79        PhysicsObject pallo = new PhysicsObject(50.0, 50.0, Shape.Circle);
80        pallo.Color = vari;
81        pallo.X = xkoordinaatti;
82        pallo.Y = ykoordinaatti;
83        pallo.Tag = "pallura";
84        Add(pallo);
85    }
86
87    void LuoVihollinen()
88    {
89        PhysicsObject vihollinen = new PhysicsObject(50.0, 50.0);
90        vihollinen.X = 400.0;
91        vihollinen.Y = 0.0;
92        vihollinen.Image = vihollisenKuva;
93        vihollinen.Tag = "vihu";
94        Add(vihollinen);
95
96        // TODO tee jokin keino tappaa vihollinen..?
97
98        // TODO lisää viholliselle tekoäly, jotta se seuraa pelaajaa
99    }
100}
Note: See TracBrowser for help on using the repository browser.