source: 2017/31/JouniP/Avaruuspeli/Avaruuspeli/Avaruuspeli/Avaruuspeli.cs @ 9329

Revision 9329, 3.1 KB checked in by nupeohje, 2 years ago (diff)

Pelissä on vain yksi kerättävä kolikko, jonka sijainti arvotaan tietylle alueelle

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Avaruuspeli : PhysicsGame
10{
11    Image taustakuva = LoadImage("avaruuspelin_suunnitelma");
12
13    PhysicsObject jouninAlus;
14
15    public override void Begin()
16    {
17        LisaaAlus();
18        LisaaVihollinen();
19        TeeKentta();
20
21        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
22
23        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
24        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
25        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
26        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
27
28        Camera.Zoom(2.0);
29        Camera.Follow(jouninAlus);
30    }
31
32    void LiikutaPelaajaa(Vector vektori)
33    {
34        jouninAlus.Push(vektori);
35    }
36
37    void TeeKentta()
38    {
39        // Tehdään kolikoita kerättäväksi:
40        //LisaaKolikkoRuudulle(200.0, 100.0);
41        //LisaaKolikkoRuudulle(-200.0, -100.0);
42        //LisaaKolikkoRuudulle(135.3, 68.0);
43
44        double satunnainenXkoordinaatti = RandomGen.NextDouble(0.0, 200.0);
45        double satunnainenYkoordinaatti = RandomGen.NextDouble(0.0, 200.0);
46        LisaaKolikkoRuudulle(satunnainenXkoordinaatti, satunnainenYkoordinaatti);
47
48        // Muutetaan taustakuvaa sopivammaksi:
49        Level.Background.Color = Color.Black;
50        Level.Background.CreateStars();
51        Level.CreateBorders();
52        //Level.Background.Image = taustakuva; // tällä saa erillisen kuvan, joka on ladattu ylempänä Beginin yläpuolella muuttujaan
53
54    }
55
56    void LisaaAlus()
57    {
58        jouninAlus = new PhysicsObject(50.0, 70.0);
59        Add(jouninAlus);
60        AddCollisionHandler(jouninAlus, "raha", KeraaRaha);
61        AddCollisionHandler(jouninAlus, "pahis", PelaajaTormasiPahikseen);
62        //AddCollisionHandler(jouninAlus, "pahis", CollisionHandler.ExplodeObject(300.0, true));
63       
64    }
65
66    void LisaaVihollinen()
67    {
68        PhysicsObject vihollinen = new PhysicsObject(100.0, 100.0);
69        vihollinen.X = 300.0;
70        vihollinen.Y = 350.0;
71        vihollinen.Tag = "pahis";
72        Add(vihollinen);
73    }
74
75    void LisaaKolikkoRuudulle(double xkoordinaatti, double ykoordinaatti)
76    {
77        PhysicsObject kolikko = new PhysicsObject(10.0, 10.0);
78        kolikko.Color = Color.Yellow;
79        kolikko.X = xkoordinaatti;
80        kolikko.Y = ykoordinaatti;
81        kolikko.Tag = "raha";
82        Add(kolikko);
83    }
84
85    void KeraaRaha(PhysicsObject pelaaja, PhysicsObject kultaraha)
86    {
87        MessageDisplay.Add("Sait kultarahan!");
88        kultaraha.Destroy();
89    }
90
91    void PelaajaTormasiPahikseen(PhysicsObject kukaTormasi, PhysicsObject mihinTormasi)
92    {
93        MessageDisplay.Add("Osuit viholliseen ja menetit energiaa!");
94        kukaTormasi.Destroy();
95    }
96
97
98}
Note: See TracBrowser for help on using the repository browser.