source: 2014/30/SimonG/OmaPeli2014/OmaPeli2014/OmaPeli2014/OmaPeli2014.cs @ 5681

Revision 5681, 4.8 KB checked in by sidatogr, 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 OmaPeli2014 : PhysicsGame
10{
11    PhysicsObject Pelaaja;
12    AssaultRifle PelaajanAse;
13    Timer aikaLaskuri;
14    Image PelaajaKuva = LoadImage("Pelaaja123");
15    Image TaustaKuva1 = LoadImage("TaustaKuva");
16    Image HyokkaajanKuva = LoadImage("Zombie123");
17    public override void Begin()
18    {
19        IsMouseVisible = true;
20        SetWindowSize (800, 600);
21        AloitaPeli();
22    }
23
24    void AloitaPeli()
25    {
26        ClearAll();
27
28        Luokentta();
29        LuoHyokkaaja();
30        LuoAikaLaskuri();
31
32        Level.CreateBorders ();
33        Camera.ZoomToLevel();
34       
35        Timer ajastin = new Timer();
36        ajastin.Interval = 6.0;
37        ajastin.Timeout += LuoHyokkaaja;
38        ajastin.Start();
39        //Ennätys= 130,4sec (O)
40        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
41
42        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
43        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
44        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
45        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
46       
47        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
48        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
49    }
50    void LiikutaPelaajaa(Vector vektori)
51    {
52        Pelaaja.Push(vektori);
53    }
54
55    void KunOllaanLahella()
56    {
57        if (!Pelaaja.IsDestroyed)
58        {
59            aikaLaskuri.Stop();
60            Pelaaja.Destroy();
61            MessageDisplay.Add("Hävisit");
62
63            Explosion rajahdys = new Explosion(500);
64            rajahdys.Position = Pelaaja.Position;
65            Add(rajahdys);
66            rajahdys.Speed = 600.0;
67            rajahdys.Force = 500;
68
69            Timer.SingleShot(2.4, AloitaPeli);
70        }
71       
72    }
73
74    void LuoAikaLaskuri()
75    {
76        aikaLaskuri = new Timer();
77        aikaLaskuri.Start();
78
79        Label aikaNaytto = new Label();
80        aikaNaytto.TextColor = Color.White;
81        aikaNaytto.DecimalPlaces = 1;
82        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
83        Add(aikaNaytto);
84    }
85    void Luokentta()
86    {
87        Pelaaja = new PhysicsObject(60, 60);
88        Pelaaja.Tag = "Pelaaja";
89        Pelaaja.Image = PelaajaKuva;
90        Add(Pelaaja);
91        Pelaaja.LinearDamping = 0.9;
92       
93        PelaajanAse = new AssaultRifle(70, 30);
94        PelaajanAse.Ammo.Value = 10000;
95        PelaajanAse.ProjectileCollision = AmmusOsui;
96        Pelaaja.Add(PelaajanAse);
97        //PelaajanAse.AttackSound = null;
98
99        Level.Background.Image = TaustaKuva1;
100       
101        Mouse.Listen (MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", PelaajanAse);
102
103        Mouse.ListenMovement(0.0, Tahtaa, "Tähtää aseella");
104    }
105    void LuoHyokkaaja()
106    {
107        for (int i = 0; i < 30; i++)
108        {
109            FollowerBrain SeuraajanAivot = new FollowerBrain("Pelaaja");
110            SeuraajanAivot.Speed = 200;
111            SeuraajanAivot.DistanceFar = 8000;
112            SeuraajanAivot.DistanceClose = 62;
113            SeuraajanAivot.StopWhenTargetClose = false;
114            SeuraajanAivot.TargetClose += KunOllaanLahella;
115            SeuraajanAivot.Active = true;
116
117            PhysicsObject Hyokkaaja = new PhysicsObject(50, 50);
118            Hyokkaaja.Tag = "Hyokkaaja";
119            Hyokkaaja.Image = HyokkaajanKuva;
120            Add(Hyokkaaja);
121            Hyokkaaja.Brain = SeuraajanAivot;
122            SeuraajanAivot.Speed = 68.9;
123            Hyokkaaja.LinearDamping = 0.9;
124
125           
126            if (RandomGen.NextBool())
127            {
128                Hyokkaaja.X = RandomGen.SelectOne(Level.Left +50, Level.Right -50);
129                Hyokkaaja.Y = RandomGen.NextDouble(Level.Top -50, Level.Bottom +50);
130            }
131            else
132            {
133                Hyokkaaja.X = RandomGen.NextDouble(Level.Left + 50, Level.Right - 50);
134                Hyokkaaja.Y = RandomGen.SelectOne(Level.Bottom + 50, Level.Top - 50);
135            }
136        }
137    }
138    void Tahtaa(AnalogState hiirenliike)
139    {
140        Vector suunta = (Mouse.PositionOnWorld - PelaajanAse.AbsolutePosition).Normalize();
141        PelaajanAse.AbsoluteAngle = suunta.Angle;
142    }
143    void AmmusOsui(PhysicsObject ammus, PhysicsObject Hyokkaaja)
144    {
145        ammus.Destroy();
146        if (Hyokkaaja.Tag.Equals("Hyokkaaja")) Hyokkaaja.Destroy();
147    }
148    void AmmuAseella(AssaultRifle ase)
149    {
150        PhysicsObject ammus = ase.Shoot();
151    }
152}
Note: See TracBrowser for help on using the repository browser.