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

Revision 3889, 5.5 KB checked in by jotapoti, 7 years ago (diff)

pelikerhossa tehdyt jutut.

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            "You're deep on enemy territory, you've got only this plasmarifle and you must survive. 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.Color = Color.Green;
36        Jimmy.Shape = Shape.Ellipse;
37        Jimmy.Restitution = 1.0;
38        Jimmy.Mass = 40.0;
39        Add(Jimmy);
40        AddCollisionHandler(Jimmy, "Vihollinen", VihollinenTormasi); 
41        Jimmyase = new PlasmaCannon(30, 10);
42        Jimmy.Add(Jimmyase);
43        Jimmyase.CanHitOwner = true;
44        Jimmy.Image = JimmynKuva;
45        Keyboard.Listen(Key.W, ButtonState.Pressed, LiikutaJimmya, null, new Vector(0, 998765));
46        Keyboard.Listen(Key.A, ButtonState.Down,
47        LiikutaJimmya, null, new Vector(-4500, 0));
48        Keyboard.Listen(Key.D, ButtonState.Down,
49        LiikutaJimmya, null, new Vector(4500, 0)); 
50        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
51        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", Jimmyase);
52        Mouse.ListenMovement(0.1, Tahtaa, "Tähtää aseella"); 
53       
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        LisaaVihollisia();
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            AddCollisionHandler(ammus, "Vihollinen", Vihollinenkuolee);
81        }
82
83        ase.FireRate = 4;
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 = 1.0;
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.Color = Color.Blue;
117        Vihollinen.Position = Level.GetRandomPosition();
118        Add(Vihollinen);
119        Vihollinen.Tag = "Vihollinen";
120        Vihollinen.Image = olionKuva;
121
122    }
123    void AloitaPeli()
124    {
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("Jimmy you fool! You can never stop me and my army of evil balls! ");
181        topLista.EnterAndShow(pisteLaskuri.Value);
182        topLista.HighScoreWindow.Closed += delegate { Exit(); };
183        ajastin.Stop();
184        MessageDisplay.MessageTime = new TimeSpan(0, 0, 40);
185    }
186
187
188    void LiikutaJimmya(Vector vektori)
189    {
190        Jimmy.Push(vektori);
191    }
192}
Note: See TracBrowser for help on using the repository browser.