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

Revision 8128, 2.9 KB checked in by jotapoti, 5 years ago (diff)

TODO-juttuja

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