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

Revision 5634, 4.1 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("tahtikuva");
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        AddCollisionHandler(pelaaja, KerasiTahden);
93    }
94
95    void AsetaOhjaimet()
96    {
97        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
98        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
99
100        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Liikuta hahmoa ylös", pelaaja, nopeusYlos);
101        Keyboard.Listen(Key.Up, ButtonState.Released, LiikutaPelaajaa, null, pelaaja, Vector.Zero);
102        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Liikuta hahmoa alas", pelaaja, nopeusAlas);
103        Keyboard.Listen(Key.Down, ButtonState.Released, LiikutaPelaajaa, null, pelaaja, Vector.Zero);
104        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Liikuta hahmoa vasemmalle", pelaaja, nopeusVasemmalle);
105        Keyboard.Listen(Key.Left, ButtonState.Released, LiikutaPelaajaa, null, pelaaja, Vector.Zero);
106        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liikuta hahmoa oikealle", pelaaja, nopeusOikealle);
107        Keyboard.Listen(Key.Right, ButtonState.Released, LiikutaPelaajaa, null, pelaaja, Vector.Zero);
108    }
109
110    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector suunta)
111    {
112        pelaaja.Velocity = suunta;
113    }
114
115    void PelaajaTuhoutuu(PhysicsObject pelaaja, PhysicsObject zombi)
116    {
117        pelaajanTerveys--;
118
119        if (pelaajanTerveys <= 0)
120            pelaaja.Destroy();
121    }
122
123    void KerasiTahden(PhysicsObject pelaaja, PhysicsObject tahti)
124    {
125        MessageDisplay.Add("Keräsit tähden");
126
127    }
128
129   
130
131
132}
Note: See TracBrowser for help on using the repository browser.