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

Revision 9333, 3.4 KB checked in by nupeohje, 2 years ago (diff)

Kuvia lisätty hahmoille

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