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

Revision 3917, 5.5 KB checked in by jypeleht, 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("Briefing:",
26            "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       
53        //Reunat
54        Surface alaReuna = Surface.CreateBottom(Level);
55        Add(alaReuna);
56        alaReuna.Color = Color.Black;
57        Surface yläreuna = Surface.CreateTop(Level);
58        Add(yläreuna);
59        yläreuna.Color = Color.LightBlue;
60        Surface vasenreuna = Surface.CreateLeft(Level);
61        Add(vasenreuna);
62        vasenreuna.Color = Color.LightBlue;
63        Surface oikeareuna = Surface.CreateRight(Level);
64        oikeareuna.Color = Color.LightBlue;
65        Add(oikeareuna);
66       
67       
68    }
69    void VihollinenTormasi(PhysicsObject Jimmy, PhysicsObject Vihollinen)
70    {     
71        elamaLaskuri.Value -= 1;
72       
73    }
74    void AmmuAseella(PlasmaCannon ase)
75    {
76        PhysicsObject ammus = ase.Shoot();
77
78        if (ammus != null)
79        {
80            Jimmyase.Ammo.Value =500;
81            AddCollisionHandler(ammus, "Vihollinen", Vihollinenkuolee); 
82        }
83
84        ase.FireRate = 10;
85    }
86    void AmmusOsui(PhysicsObject ammus, PhysicsObject Vihollinen)
87    {
88        ammus.Destroy();
89    }
90    void KaannaTykkia(Weapon tykki, Angle kulma)
91    {
92        tykki.Angle += kulma;
93    }
94
95    void Tahtaa(AnalogState hiirenLiike)
96    {
97
98        Vector suunta = (Mouse.PositionOnWorld - Jimmyase.AbsolutePosition).Normalize();
99        Jimmyase.Angle = suunta.Angle;
100    }
101    void Vihollinenkuolee(PhysicsObject ammus, PhysicsObject Vihollinen)
102    {
103        Vihollinen.Destroy();
104        pisteLaskuri.Value += 1;
105    }
106    void LisaaVihollisia()
107    {
108        ajastin = new Timer();
109        ajastin.Interval = 0.2;
110        ajastin.Timeout += LisaaVihollinen;
111        ajastin.Start();
112    }
113    void LisaaVihollinen()
114    {
115        PhysicsObject Vihollinen = new PhysicsObject(50, 50);
116        Vihollinen.Shape = Shape.Ellipse;
117        Vihollinen.Position = Level.GetRandomPosition();
118        Add(Vihollinen);
119        Vihollinen.Tag = "Vihollinen";
120        Vihollinen.Image = olionKuva;
121    }
122    void AloitaPeli()
123    { 
124        LisaaVihollisia();
125    }
126    void ParhaatPisteet()
127    { 
128    }
129
130   
131    IntMeter pisteLaskuri;
132
133    void LuoPistelaskuri()
134    {
135        pisteLaskuri = new IntMeter(0);
136
137        Label pisteNaytto = new Label();
138        pisteNaytto.X = Screen.Left + 100;
139        pisteNaytto.Y = Screen.Top - 100;
140        pisteNaytto.TextColor = Color.Black;
141        pisteNaytto.Color = Color.White;
142
143        pisteNaytto.BindTo(pisteLaskuri);
144        Add(pisteNaytto);
145       
146       
147     
148
149    }
150    void PainettiinValikonNappia(int valinta)
151    {
152        switch (valinta)
153        {
154            case 0:
155                // AloitaPeli();
156                break;
157            case 1:
158                Exit();
159                break;
160        }
161
162    }
163    void LuoElamaLaskuri()
164    {
165        elamaLaskuri = new DoubleMeter(10);
166        elamaLaskuri.MaxValue = 10;
167        elamaLaskuri.LowerLimit += ElamaLoppui;
168       
169
170        ProgressBar elamaPalkki = new ProgressBar(150, 20);
171        elamaPalkki.X = Screen.Left + 150;
172        elamaPalkki.Y = Screen.Top - 20;
173        elamaPalkki.BindTo(elamaLaskuri);
174        Add(elamaPalkki);
175    }
176
177    void ElamaLoppui()
178    {
179        ClearGameObjects();
180        MessageDisplay.Add(" General: Lt Jimmy! Nooooooooooooooooooooo! ");
181        topLista.EnterAndShow(pisteLaskuri.Value);
182        topLista.HighScoreWindow.Closed += delegate { Exit(); };
183        ajastin.Stop();
184        MessageDisplay.MessageTime = new TimeSpan(0, 0, 60);
185    }
186
187
188    void LiikutaJimmya(Vector vektori)
189    {
190        Jimmy.Push(vektori);
191    }
192
193
194}
Note: See TracBrowser for help on using the repository browser.