source: 2017/30/LeoL/zombi/zombi/zombi/zombi.cs @ 9113

Revision 9113, 3.6 KB checked in by npo17_60, 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 zombi : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    List<Vector> spawnauspisteet = new List<Vector>();
13    public override void Begin()
14    {
15        //
16       // LuoHahmo();
17        LuoKentta();
18        //LuoPalikka();
19        LuoAikaLaskuri();
20        LuoZombi(RandomGen.SelectOne<Vector>(spawnauspisteet), 40.0, 40.0);
21
22        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
23        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
24    }
25    void LuoHahmo(Vector paikka, double leveys, double korkeus)
26    {
27        Image pelaajanKuva = LoadImage("ukko");
28        pelaaja = new PhysicsObject(leveys-10, korkeus-10, Shape.Circle);
29        pelaaja.Position = paikka;
30        pelaaja.Image = pelaajanKuva;
31        pelaaja.Restitution = 0.0;
32        Add(pelaaja);
33        pelaaja.CanRotate = false;
34        Keyboard.Listen(Key.Left, ButtonState.Down,
35           LiikutaPelaajaa, null, new Vector(-100, 0)); 
36       
37   
38   
39        Keyboard.Listen(Key.Right, ButtonState.Down,
40          LiikutaPelaajaa, null, new Vector(100, 0));
41        Keyboard.Listen(Key.Up, ButtonState.Down,
42          LiikutaPelaajaa, null, new Vector(0, 100));
43        Keyboard.Listen(Key.Down, ButtonState.Down,
44          LiikutaPelaajaa, null, new Vector(0, -100));
45    }
46    void LuoKentta()
47    {
48        TileMap ruudut = TileMap.FromLevelAsset("kentta1");
49
50        Level.Background.Color = Color.Black;
51
52        ruudut.SetTileMethod('@', LuoPalikka);
53        ruudut.SetTileMethod('#', LuoHahmo);
54        ruudut.SetTileMethod('z', OtaTalteenZombinMahdollinenAloituspiste);
55        ruudut.Execute(50.0, 50.0);
56
57
58
59        Camera.Follow(pelaaja);
60        Camera.ZoomFactor = 5.2;
61    }
62
63    void OtaTalteenZombinMahdollinenAloituspiste(Vector paikka, double leveys, double korkeus)
64    {
65        spawnauspisteet.Add(paikka);
66    }
67
68    void LiikutaPelaajaa(Vector vektori)
69    {
70        pelaaja.Push(vektori);
71    }
72    void LuoZombi(Vector paikka, double leveys, double korkeus)
73    {
74        Image zombinkuva = LoadImage("zombie");
75        PhysicsObject zombi = new PhysicsObject(leveys, korkeus);
76        zombi.Position = paikka;
77        zombi.Image = zombinkuva;
78        zombi.Shape = Shape.Circle;
79       
80        Add(zombi);
81        zombi.CanRotate = false;
82
83        LuoLabyrinttiAivot(zombi);
84
85    }
86    void LuoPalikka(Vector paikka, double leveys, double korkeus)
87    {
88        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
89        palikka.Position = paikka;
90        palikka.Shape = Shape.Rectangle;
91        palikka.Color = Color.Gray;
92        palikka.Tag = "seina";
93        Add(palikka);
94        palikka.Restitution = 0.0;
95    }
96    void LuoLabyrinttiAivot(PhysicsObject zombi)
97    {
98
99        const int RUUDUN_KOKO = 40;
100
101       
102
103        LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(RUUDUN_KOKO);
104        labyrinttiAivot.Speed = 100.0;
105        labyrinttiAivot.LabyrinthWallTag = "seina";
106
107       
108        zombi.Brain = labyrinttiAivot;
109    }
110    void LuoAikaLaskuri()
111    {
112        Timer aikaLaskuri = new Timer();
113        aikaLaskuri.Start();
114
115
116   
117        Label aikaNaytto = new Label();
118        aikaNaytto.TextColor = Color.White;
119        aikaNaytto.DecimalPlaces = 1;
120        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
121        Add(aikaNaytto);
122        aikaNaytto.X = 900;
123        aikaNaytto.Y = 500;
124       
125    }
126}
127   
128
Note: See TracBrowser for help on using the repository browser.