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

Revision 8129, 3.1 KB checked in by jotapoti, 5 years ago (diff)

1 satunnainen pallo luotu.

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        double satunnainenX = RandomGen.NextDouble(Level.Left + 50.0, Level.Right - 50.0);
25        double satunnainenY = RandomGen.NextDouble(Level.Bottom + 50.0, Level.Top - 50.0);
26        LuoPallo(satunnainenX, satunnainenY, Color.Brown);
27       
28        LuoPallo(-100.0, -20.5, Color.HotPink);
29        LuoPallo(200.0, 0.0, Color.MidnightBlue);
30        LuoPallo(150.0, 0.0, Color.Green);
31        LuoPallo(150.0, 400.0, Color.MediumVioletRed);
32
33        // TODO tee 25kpl palloja silmukalla
34
35        LisaaPelaaja();
36
37        // TODO tee oma aliohjelma nappuloiden asettamiseksi
38        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
39        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
40        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Liiku vasemmalle", new Vector(-1000, 0));
41        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liiku oikealle", new Vector(1000, 0));
42        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Liiku ylös", new Vector(0, 1000));
43        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Liiku alas", new Vector(0, -1000));
44    }
45
46    void LiikutaPelaajaa(Vector vektori)
47    {
48        pelaaja1.Push(vektori);
49    }
50    void LisaaPelaaja()
51    {
52        pelaaja1 = new PhysicsObject(40.0, 40.0);
53        pelaaja1.CanRotate = false;
54        pelaaja1.Image = pelaajanKuva;
55        Add(pelaaja1);
56        AddCollisionHandler(pelaaja1, "pallura", PelaajaTormaaPalloon);
57        AddCollisionHandler(pelaaja1, "vihu", PelaajaTormaaVihuun);
58    }
59
60    void PelaajaTormaaPalloon(PhysicsObject pelaajahahmo, PhysicsObject pallonen)
61    {
62        pallonen.Destroy();
63        pelaajahahmo.Size *= 1.5;
64    }
65
66    void PelaajaTormaaVihuun(PhysicsObject pelaajahahmo, PhysicsObject pahis)
67    {
68        pahis.Size *= 1.5;
69        pelaajahahmo.Size *= 0.5;
70    }
71
72    void LuoPallo(double xkoordinaatti, double ykoordinaatti, Color vari)
73    {
74        PhysicsObject pallo = new PhysicsObject(50.0, 50.0, Shape.Circle);
75        pallo.Color = vari;
76        pallo.X = xkoordinaatti;
77        pallo.Y = ykoordinaatti;
78        pallo.Tag = "pallura";
79        Add(pallo);
80    }
81
82    void LuoVihollinen()
83    {
84        PhysicsObject vihollinen = new PhysicsObject(50.0, 50.0);
85        vihollinen.X = 400.0;
86        vihollinen.Y = 0.0;
87        vihollinen.Image = vihollisenKuva;
88        vihollinen.Tag = "vihu";
89        Add(vihollinen);
90
91        // TODO tee jokin keino tappaa vihollinen..?
92
93        // TODO lisää viholliselle tekoäly, jotta se seuraa pelaajaa
94    }
95}
Note: See TracBrowser for help on using the repository browser.