source: 2017/30/LeoL/ZombiPeli Official/zombi/zombi/zombi.cs @ 9140

Revision 9140, 4.8 KB checked in by npo17_60, 2 years ago (diff)

Laitettiin valo.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class zombi : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    List<Vector> spawnauspisteet = new List<Vector>();
13
14    public override void Begin()
15    {
16       
17        // LuoHahmo();
18        LuoKentta();
19        //LuoPalikka();
20        LuoAikaLaskuri();
21        LuoZombi(RandomGen.SelectOne<Vector>(spawnauspisteet), 40.0, 40.0);
22        LuoAikaLaskuri2();
23        LuoValo();
24        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
25        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
26    }
27    void LuoHahmo(Vector paikka, double leveys, double korkeus)
28    {
29        Image pelaajanKuva = LoadImage("ukko");
30        pelaaja = new PhysicsObject(leveys - 10, korkeus - 10, Shape.Circle);
31        pelaaja.Position = paikka;
32        pelaaja.Image = pelaajanKuva;
33        pelaaja.Restitution = 0.0;
34
35        Add(pelaaja);
36
37        AddCollisionHandler(pelaaja, "zombi", PelaajaTormasi);
38
39        pelaaja.CanRotate = false;
40        Keyboard.Listen(Key.Left, ButtonState.Down,
41           LiikutaPelaajaa, null, new Vector(-100, 0));
42
43
44
45        Keyboard.Listen(Key.Right, ButtonState.Down,
46          LiikutaPelaajaa, null, new Vector(100, 0));
47        Keyboard.Listen(Key.Up, ButtonState.Down,
48          LiikutaPelaajaa, null, new Vector(0, 100));
49        Keyboard.Listen(Key.Down, ButtonState.Down,
50          LiikutaPelaajaa, null, new Vector(0, -100));
51    }
52    void LuoKentta()
53    {
54        TileMap ruudut = TileMap.FromLevelAsset("kentta1");
55
56        Level.Background.Color = Color.Black;
57
58        ruudut.SetTileMethod('@', LuoPalikka);
59        ruudut.SetTileMethod('#', LuoHahmo);
60        ruudut.SetTileMethod('z', OtaTalteenZombinMahdollinenAloituspiste);
61        ruudut.Execute(50.0, 50.0);
62
63
64
65        Camera.Follow(pelaaja);
66        Camera.ZoomFactor = 5.2;
67    }
68
69    void OtaTalteenZombinMahdollinenAloituspiste(Vector paikka, double leveys, double korkeus)
70    {
71        spawnauspisteet.Add(paikka);
72    }
73
74    void LiikutaPelaajaa(Vector vektori)
75    {
76        pelaaja.Push(vektori);
77    }
78    void LuoZombi(Vector paikka, double leveys, double korkeus)
79    {
80        Image zombinkuva = LoadImage("zombie");
81        PhysicsObject zombi = new PhysicsObject(leveys, korkeus);
82        zombi.Position = paikka;
83        zombi.Image = zombinkuva;
84        zombi.Shape = Shape.Circle;
85        zombi.Tag = "zombi";
86
87        Add(zombi);
88        zombi.CanRotate = false;
89
90        LuoLabyrinttiAivot(zombi);
91
92    }
93    void PelaajaTormasi(PhysicsObject pelaaja, PhysicsObject zombi)
94    {
95        ClearAll(); Begin();
96
97    }
98    void LuoPalikka(Vector paikka, double leveys, double korkeus)
99    {
100        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
101        palikka.Position = paikka;
102        palikka.Shape = Shape.Rectangle;
103        palikka.Color = Color.Gray;
104        palikka.Tag = "seina";
105        Add(palikka);
106        palikka.Restitution = 0.0;
107    }
108    void LuoLabyrinttiAivot(PhysicsObject zombi)
109    {
110
111        const int RUUDUN_KOKO = 40;
112
113
114
115        LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(RUUDUN_KOKO);
116        labyrinttiAivot.Speed = 100.0;
117        labyrinttiAivot.LabyrinthWallTag = "seina";
118
119
120        zombi.Brain = labyrinttiAivot;
121    }
122    void LuoAikaLaskuri()
123    {
124        Timer aikaLaskuri = new Timer();
125        aikaLaskuri.Start();
126
127
128
129        Label aikaNaytto = new Label();
130        aikaNaytto.TextColor = Color.White;
131        aikaNaytto.DecimalPlaces = 1;
132        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
133        Add(aikaNaytto);
134        aikaNaytto.X = 900;
135        aikaNaytto.Y = 500;
136
137    }
138    void LuoAikaLaskuri2()
139    {
140        Timer aikaLaskuri = new Timer();
141        aikaLaskuri.Interval = 15;
142        aikaLaskuri.Timeout += LuoZombi;
143        aikaLaskuri.Start();
144
145        Label aikaNaytto = new Label();
146        aikaNaytto.TextColor = Color.White;
147        aikaNaytto.DecimalPlaces = 1;
148        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
149        Add(aikaNaytto);
150    }
151
152    void LuoZombi()
153    {
154        //MessageDisplay.Add("Aika loppui...");
155
156        LuoZombi(RandomGen.SelectOne<Vector>(spawnauspisteet), 40.0, 40.0);
157    }
158    void LuoValo()
159    {
160        Level.AmbientLight = -0.3;
161        Light valo = new Light();
162        valo.Intensity = 0.8;
163        valo.Distance = 150;
164        valo.Position = pelaaja.Position;
165        Add(valo);
166
167        Timer siirtoajastin = new Timer();
168        siirtoajastin.Interval = 0.01;
169        siirtoajastin.Timeout += delegate { valo.Position = pelaaja.Position; };
170        siirtoajastin.Start();
171
172    }
173}
174
175
Note: See TracBrowser for help on using the repository browser.