source: 2015/27/BenjaminE/BenJaMarkPeli/HacknSlash/HacknSlash/HacknSlash/HacknSlash.cs @ 6662

Revision 6662, 4.3 KB checked in by maankari, 6 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Pelaaja : PhysicsObject
10{
11    public IntMeter healthit;
12
13    public Image graf;
14
15
16    public Pelaaja(Image grafiikka)
17        : base(grafiikka)
18    {
19        this.healthit = new IntMeter(1, 0, 100);
20        graf = grafiikka;
21    }
22}
23
24
25public class HacknSlash : PhysicsGame
26{
27    Image ekaPlKuva = LoadImage("res/ekaPelaaja");
28    Image ekaPlKuva2 = LoadImage("res/ekaPelaaja2");
29    Image ekaPlKuva3 = LoadImage("res/ekaPelaaja3");
30    Image ekaPlKuva4 = LoadImage("res/ekaPelaaja4");
31
32    Image miekkaKuva = LoadImage("res/miekka");
33
34    Pelaaja ekaPelaaja;
35
36    bool kaynnissa = false;
37    double vihuSpawnNopeus = 1 ;
38
39    override void Begin()
40    {
41        MediaPlayer.Play("AdventureMeme");
42        MediaPlayer.IsRepeating = true;
43
44        LuoPelaaja();
45        kaynnissa = true;
46    }
47
48     void LuoPelaaja()
49    {
50        ekaPelaaja = new Pelaaja(ekaPlKuva);
51
52
53
54        Add(ekaPelaaja);
55        Ohjet(ekaPelaaja);
56    }
57
58     void Ohjet(PhysicsObject pelaaja)
59    {
60        Vector ylos = new Vector(0.0, 500.0);
61        Vector alas = new Vector(0.0, -500.0);
62        Vector oikea = new Vector(500.0, 0.0);
63        Vector vasen = new Vector(-500.0, 0.0);
64
65
66        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Parhaat pisteet", "Lopeta");
67        Add(alkuValikko);
68
69        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Liiku alas.", pelaaja, alas);
70        Keyboard.Listen(Key.Down, ButtonState.Pressed, AsetaKuva, null, pelaaja, ekaPlKuva);
71        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
72
73        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Liiku oikealle.", pelaaja, oikea);
74        Keyboard.Listen(Key.Right, ButtonState.Pressed, AsetaKuva, null, pelaaja, ekaPlKuva2);
75        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
76
77        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Liiku vasemalle.", pelaaja, vasen);
78        Keyboard.Listen(Key.Left, ButtonState.Pressed, AsetaKuva, null, pelaaja, ekaPlKuva3);
79        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
80
81        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Liiku ylös.", pelaaja, ylos);
82        Keyboard.Listen(Key.Up, ButtonState.Pressed, AsetaKuva, null, pelaaja, ekaPlKuva4);
83        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero);
84
85        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
86
87        Keyboard.Listen(Key.Space, ButtonState.Down, Hyokkaa, "Hyökkää miekkaan kansa.");
88
89        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
90    }
91
92     void Hyokkaa()
93    {
94        PhysicsObject miekka = new PhysicsObject(16, 16);
95        miekka.Image = miekkaKuva;
96
97        Timer miekkaAijastin = new Timer();
98        miekkaAijastin.Interval = 0.5;
99        miekkaAijastin.Timeout += delegate
100        {
101            miekka.Position = ekaPelaaja.Position;
102        };
103        miekkaAijastin.Start();
104
105        Timer.SingleShot(0.25, delegate { miekka.Destroy(); });
106        Add(miekka);
107    }
108
109     void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus)
110    {
111        pelaaja.Move(nopeus);
112    }
113    void AsetaKuva(PhysicsObject pelaaja, Image kuva)
114    {
115        pelaaja.Image = kuva;
116    }
117
118    void LuoVihu()
119    {
120        PhysicsObject vihu = new PhysicsObject(LoadImage("res/vihu"));
121        vihu.Position = new Vector(RandomGen.NextDouble(Screen.Left, Screen.Right), RandomGen.NextDouble(Screen.Bottom, Screen.Top));
122
123        FollowerBrain vihunAivot = new FollowerBrain(ekaPelaaja);
124        vihu.Brain = vihunAivot;
125        vihunAivot.Active = false;
126       Add(vihu);
127    }
128
129    protected override void Update(Microsoft.Xna.Framework.GameTime gameTime)
130    {
131        if (kaynnissa)
132        {
133            if (gameTime.TotalGameTime.Seconds % vihuSpawnNopeus == 0)
134                {
135                LuoVihu();
136                }
137                 
138        }
139       
140        base.Update(gameTime);
141    }
142
143}
Note: See TracBrowser for help on using the repository browser.