source: 2012/09-22/JariK/Jimmy The Survivor!/Jimmy The Survivor!/Jimmy The Survivor!/Jimmy_The_Survivor_.cs @ 3922

Revision 3922, 5.5 KB checked in by anlakane, 7 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 Jimmy_The_Survivor_ : PhysicsGame
10{
11
12    PhysicsObject Jimmy;
13    PlasmaCannon Jimmyase;
14    EasyHighScore topLista = new EasyHighScore();
15    Image JimmynKuva = LoadImage("Jimmy");
16    Image olionKuva = LoadImage("Vihollinen");
17    DoubleMeter elamaLaskuri;
18    Timer ajastin;
19    public override void Begin()
20    {     
21        LuoElamaLaskuri();
22        LuoPistelaskuri();
23
24        IsMouseVisible = true;
25        MultiSelectWindow alkuValikko = new MultiSelectWindow
26     ("Jimmy The Survivor 0.5", "General: Lt Jimmy! Your task is destroy the enemy forces. Go and try not to get killed! Click here to start", "Exit");
27                   
28        alkuValikko.AddItemHandler(0, AloitaPeli);               
29        alkuValikko.AddItemHandler(1, Exit);
30        alkuValikko.DefaultCancel = 2;
31        Add(alkuValikko);
32
33        Gravity = new Vector(0.0, -800.0);
34        Jimmy = new PhysicsObject(40, 40);
35        Jimmy.Shape = Shape.Ellipse;
36        Jimmy.Restitution = 1.0;
37        Jimmy.Mass = 10.0;
38        Add(Jimmy);
39        AddCollisionHandler(Jimmy, "Vihollinen", VihollinenTormasi); 
40        Jimmyase = new PlasmaCannon(30, 10);
41        Jimmy.Add(Jimmyase);
42        Jimmy.Image = JimmynKuva;
43       
44        Keyboard.Listen(Key.W, ButtonState.Pressed, LiikutaJimmya, null, new Vector(0, 999995));
45        Keyboard.Listen(Key.A, ButtonState.Down,
46        LiikutaJimmya, null, new Vector(-4600, 0));
47        Keyboard.Listen(Key.D, ButtonState.Down,
48        LiikutaJimmya, null, new Vector(4600, 0)); 
49        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
50        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", Jimmyase);
51        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella");
52        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
53       
54        //Reunat
55        Surface alaReuna = Surface.CreateBottom(Level);
56        Add(alaReuna);
57        alaReuna.Color = Color.Black;
58        Surface yläreuna = Surface.CreateTop(Level);
59        Add(yläreuna);
60        yläreuna.Color = Color.LightBlue;
61        Surface vasenreuna = Surface.CreateLeft(Level);
62        Add(vasenreuna);
63        vasenreuna.Color = Color.LightBlue;
64        Surface oikeareuna = Surface.CreateRight(Level);
65        oikeareuna.Color = Color.LightBlue;
66        Add(oikeareuna);
67     
68    }
69    void VihollinenTormasi(PhysicsObject Jimmy, PhysicsObject Vihollinen)
70    {     
71        elamaLaskuri.Value -= 1;
72    }
73    void AmmuAseella(PlasmaCannon ase)
74    {
75        PhysicsObject ammus = ase.Shoot();
76
77        if (ammus != null)
78        {
79            Jimmyase.Ammo.Value =500;
80            AddCollisionHandler(ammus, "Vihollinen", Vihollinenkuolee); 
81        }
82
83        ase.FireRate = 10;
84    }
85    void AmmusOsui(PhysicsObject ammus, PhysicsObject Vihollinen)
86    {
87        ammus.Destroy();
88    }
89    void KaannaTykkia(Weapon tykki, Angle kulma)
90    {
91        tykki.Angle += kulma;
92    }
93
94    void Tahtaa(AnalogState hiirenLiike)
95    {
96
97        Vector suunta = (Mouse.PositionOnWorld - Jimmyase.AbsolutePosition).Normalize();
98        Jimmyase.Angle = suunta.Angle;
99    }
100    void Vihollinenkuolee(PhysicsObject ammus, PhysicsObject Vihollinen)
101    {
102        Vihollinen.Destroy();
103        pisteLaskuri.Value += 1;
104    }
105    void LisaaVihollisia()
106    {
107        ajastin = new Timer();
108        ajastin.Interval = 0.4;
109        ajastin.Timeout += LisaaVihollinen;
110        ajastin.Start();
111    }
112    void LisaaVihollinen()
113    {
114        PhysicsObject Vihollinen = new PhysicsObject(50, 50);
115        Vihollinen.Shape = Shape.Ellipse;
116        Vihollinen.Position = Level.GetRandomPosition();
117        Add(Vihollinen);
118        Vihollinen.Tag = "Vihollinen";
119        Vihollinen.Image = olionKuva;
120    }
121    void AloitaPeli()
122    { 
123        LisaaVihollisia();
124    }
125    void ParhaatPisteet()
126    { 
127    }
128
129    IntMeter pisteLaskuri;
130
131    void LuoPistelaskuri()
132    {
133        pisteLaskuri = new IntMeter(0);
134
135        Label pisteNaytto = new Label();
136        pisteNaytto.X = Screen.Left + 100;
137        pisteNaytto.Y = Screen.Top - 100;
138        pisteNaytto.TextColor = Color.Black;
139        pisteNaytto.Color = Color.White;
140
141        pisteNaytto.BindTo(pisteLaskuri);
142        Add(pisteNaytto);
143   
144    }
145    void PainettiinValikonNappia(int valinta)
146    {
147        switch (valinta)
148        {
149            case 0:
150                // AloitaPeli();
151                break;
152            case 1:
153                Exit();
154                break;
155        }
156
157    }
158    void LuoElamaLaskuri()
159    {
160        elamaLaskuri = new DoubleMeter(10);
161        elamaLaskuri.MaxValue = 10;
162        elamaLaskuri.LowerLimit += ElamaLoppui;
163       
164
165        ProgressBar elamaPalkki = new ProgressBar(150, 20);
166        elamaPalkki.X = Screen.Left + 150;
167        elamaPalkki.Y = Screen.Top - 20;
168        elamaPalkki.BindTo(elamaLaskuri);
169        Add(elamaPalkki);
170    }
171
172    void ElamaLoppui()
173    {
174        ClearGameObjects();
175        MessageDisplay.Add(" General: Lt Jimmy! Nooooooooooooooooooooo! ");
176        topLista.EnterAndShow(pisteLaskuri.Value);
177        topLista.HighScoreWindow.Closed += delegate { Exit(); };
178        ajastin.Stop();
179        MessageDisplay.MessageTime = new TimeSpan(0, 0, 60);
180    }
181   
182    void LiikutaJimmya(Vector vektori)
183    {
184        Jimmy.Push(vektori);
185    }
186}
Note: See TracBrowser for help on using the repository browser.