source: 2015/27/BenjaminE/CODI.txt @ 6793

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