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

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