source: 2015/27/BenjaminE/HackNSlashOikea/HackNSlashOikea/HackNSlashOikea/HackNSlashOikea.cs @ 6675

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