source: 2014/30/EevaS/Zombie attack!/Zombie attack!/Zombie attack!/Zombie_attack_.cs @ 5637

Revision 5637, 4.0 KB checked in by eemalisa, 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 Zombie_attack_ : PhysicsGame
10{
11    int pelaajanTerveys = 1;
12
13    Image tahtikuva = LoadImage("Tähti");
14    Image zombikuva = LoadImage("Zombi");
15    Image pelaajakuva = LoadImage("Pelaaja");
16    PhysicsObject pelaaja;
17   
18   
19    Vector nopeusYlos = new Vector(0, 200);
20    Vector nopeusAlas = new Vector(0, -200);
21    Vector nopeusVasemmalle = new Vector(-200, 0);
22    Vector nopeusOikealle = new Vector(200, 0);       
23
24
25    public override void Begin()
26    {
27        LuoKentta();
28        AsetaOhjaimet();
29    }
30   
31    void LuoKentta()
32    {
33        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kenttä");
34
35        ruudut.SetTileMethod(Color.Harlequin, LuoPelaaja);
36        ruudut.SetTileMethod(Color.Black, LuoTaso);
37        ruudut.SetTileMethod(Color.Gold, LuoTahti);
38        ruudut.SetTileMethod(Color.Red, LuoVihollinen);
39       
40        ruudut.Execute(20, 20);
41
42        Camera.ZoomToLevel();
43    }
44   
45    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
46    {
47        pelaaja = new PhysicsObject(15, 20);
48        pelaaja.Position = paikka;
49        pelaaja.Image = pelaajakuva;
50        Add(pelaaja);
51
52        AddCollisionHandler(pelaaja, "pahis", PelaajaTuhoutuu);
53       
54        pelaaja.CanRotate = false;
55        pelaaja.Restitution = 0.0;
56
57        Vector pelaajanSuunta = Vector.FromLengthAndAngle(500.0, pelaaja.Angle);
58        pelaaja.Push(pelaajanSuunta);
59
60
61
62
63    }   
64
65    void LuoVihollinen(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject zombi = new PhysicsObject(15, 20);
68        zombi.Position = paikka;
69        zombi.Tag = "pahis";
70        Add(zombi);
71        zombi.Image = zombikuva;
72    }
73
74    void LuoTaso(Vector paikka, double leveys, double korkeus)
75    {
76        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
77        taso.Position = paikka;
78        //taso.Image = groundImage;
79        taso.CollisionIgnoreGroup = 1;
80        Add(taso);
81        Level.Background.Color = Color.Black;
82    }
83
84    void LuoTahti(Vector paikka, double leveys, double korkeus)
85    {
86        PhysicsObject tahti = PhysicsObject.CreateStaticObject(20.0, 20.0);
87        tahti.IgnoresCollisionResponse = true;
88        tahti.Position = paikka;
89        tahti.Image = tahtikuva;
90        tahti.Tag = "tahti";
91        Add(tahti, 1);
92    }
93
94    void AsetaOhjaimet()
95    {
96        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
97        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
98
99        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Liikuta hahmoa ylös", pelaaja, nopeusYlos);
100        Keyboard.Listen(Key.Up, ButtonState.Released, LiikutaPelaajaa, null, pelaaja, Vector.Zero);
101        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Liikuta hahmoa alas", pelaaja, nopeusAlas);
102        Keyboard.Listen(Key.Down, ButtonState.Released, LiikutaPelaajaa, null, pelaaja, Vector.Zero);
103        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Liikuta hahmoa vasemmalle", pelaaja, nopeusVasemmalle);
104        Keyboard.Listen(Key.Left, ButtonState.Released, LiikutaPelaajaa, null, pelaaja, Vector.Zero);
105        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liikuta hahmoa oikealle", pelaaja, nopeusOikealle);
106        Keyboard.Listen(Key.Right, ButtonState.Released, LiikutaPelaajaa, null, pelaaja, Vector.Zero);
107    }
108
109    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector suunta)
110    {
111        pelaaja.Velocity = suunta;
112    }
113
114    void PelaajaTuhoutuu(PhysicsObject pelaaja, PhysicsObject zombi)
115    {
116        pelaajanTerveys--;
117
118        if (pelaajanTerveys <= 0)
119            pelaaja.Destroy();
120    }
121
122    void KerasiTahden(PhysicsObject pelaaja, PhysicsObject tahti)
123    {
124        MessageDisplay.Add("Keräsit tähden");
125
126    }
127
128   
129
130
131}
Note: See TracBrowser for help on using the repository browser.