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

Revision 9331, 3.2 KB checked in by nupeohje, 2 years ago (diff)

Kolikoita tulee koko ruudun alueelle 100kpl.

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        for (int i = 0; i < 100; i++)
45        {
46            double satunnainenXkoordinaatti = RandomGen.NextDouble(Level.Left, Level.Right);
47            double satunnainenYkoordinaatti = RandomGen.NextDouble(Level.Bottom, Level.Top);
48            LisaaKolikkoRuudulle(satunnainenXkoordinaatti, satunnainenYkoordinaatti);
49        }
50
51
52
53
54
55        // Muutetaan taustakuvaa sopivammaksi:
56        Level.Background.Color = Color.Black;
57        Level.Background.CreateStars();
58        Level.CreateBorders();
59        //Level.Background.Image = taustakuva; // tällä saa erillisen kuvan, joka on ladattu ylempänä Beginin yläpuolella muuttujaan
60
61    }
62
63    void LisaaAlus()
64    {
65        jouninAlus = new PhysicsObject(50.0, 70.0);
66        Add(jouninAlus);
67        AddCollisionHandler(jouninAlus, "raha", KeraaRaha);
68        AddCollisionHandler(jouninAlus, "pahis", PelaajaTormasiPahikseen);
69        //AddCollisionHandler(jouninAlus, "pahis", CollisionHandler.ExplodeObject(300.0, true));
70       
71    }
72
73    void LisaaVihollinen()
74    {
75        PhysicsObject vihollinen = new PhysicsObject(100.0, 100.0);
76        vihollinen.X = 300.0;
77        vihollinen.Y = 350.0;
78        vihollinen.Tag = "pahis";
79        Add(vihollinen);
80    }
81
82    void LisaaKolikkoRuudulle(double xkoordinaatti, double ykoordinaatti)
83    {
84        PhysicsObject kolikko = new PhysicsObject(10.0, 10.0);
85        kolikko.Color = Color.Yellow;
86        kolikko.X = xkoordinaatti;
87        kolikko.Y = ykoordinaatti;
88        kolikko.Tag = "raha";
89        Add(kolikko);
90    }
91
92    void KeraaRaha(PhysicsObject pelaaja, PhysicsObject kultaraha)
93    {
94        MessageDisplay.Add("Sait kultarahan!");
95        kultaraha.Destroy();
96    }
97
98    void PelaajaTormasiPahikseen(PhysicsObject kukaTormasi, PhysicsObject mihinTormasi)
99    {
100        MessageDisplay.Add("Osuit viholliseen ja menetit energiaa!");
101        kukaTormasi.Destroy();
102    }
103
104
105}
Note: See TracBrowser for help on using the repository browser.