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

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