source: 2012/kerho/LeoL/JHaapaduuuuuuuuuuuu!!!!!!!!!!!!!!!!!!/JHaapaduuuuuuuuuuuu!!!!!!!!!!!!!!!!!!/JHaapaduuuuuuuuuuuu__________________.cs @ 3943

Revision 3943, 5.6 KB checked in by sieerinn, 8 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 JHaapaduuuuuuuuuuuu__________________ : PhysicsGame
10{
11    PhysicsObject vihollinen;
12    AssaultRifle vihunAse;
13    Timer ampumisAjastin;
14    EasyHighScore topLista = new EasyHighScore();
15    PhysicsObject olio;
16     Image olionKuva = LoadImage("Hyvis");
17    Image lattiankuva = LoadImage("Floor");
18    Image taustakuva =LoadImage("christmas-gifts-013[1]");
19    Image seinankuva = LoadImage("Wall");
20    Image vihukuva = LoadImage("Pahis");
21    double nopeus = 500.0;
22    int VIHUNALOITUSENERGIA = 10000;
23
24    IntMeter laskuri = new IntMeter(0);
25
26
27    public override void Begin()
28    {
29        Valikko(null);
30    }
31
32    private void AloitaPeli()
33    {
34        ClearAll();
35        Level.Width = Screen.Width;
36        Surfaces reunat = Level.CreateBorders(0, true, Color.Gray);
37        reunat.Top.Image = seinankuva;
38        reunat.Bottom.Image = seinankuva;
39
40        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
41        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
42        olio = new PhysicsObject(100, 100);
43        olio.MaxVelocity = 2000;
44        olio.CanRotate = false;
45        olio.Image = olionKuva;
46        Add(olio);
47        Vector impulssi = new Vector(500.0, 0.0);
48        olio.Hit(impulssi);
49        Level.BackgroundColor = Color.Black;
50        Level.Background.Image = lattiankuva;
51        Level.Background.ScaleToLevelByWidth();
52
53        Keyboard.Listen(Key.Left, ButtonState.Down,
54          LiikutaPelaajaa, null, new Vector(-nopeus, 0));
55        Keyboard.Listen(Key.Right, ButtonState.Down,
56          LiikutaPelaajaa, null, new Vector(nopeus, 0));
57        Keyboard.Listen(Key.Up, ButtonState.Down,
58          LiikutaPelaajaa, null, new Vector(0, nopeus));
59        Keyboard.Listen(Key.Down, ButtonState.Down,
60          LiikutaPelaajaa, null, new Vector(0, -nopeus));
61
62        LuoVihu(new Vector(-600, 85));
63    }
64
65    void Valikko(Window ikkuna)
66    {
67        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Parhaat pisteet","Lopeta");
68        Add(alkuValikko);
69        alkuValikko.AddItemHandler(0, AloitaPeli);
70        alkuValikko.AddItemHandler(1, ParhaatPisteet);
71        alkuValikko.AddItemHandler(2, Exit);
72        Level.Background.Image = taustakuva;
73    }
74    void LiikutaPelaajaa(Vector vektori)
75    {
76        olio.Stop();
77        olio.Angle = vektori.Angle;
78        olio.Hit(vektori);
79    }
80
81    void LuoVihu(Vector vektori)
82    {
83
84        vihollinen = new PhysicsObject(100.0, 100.0);
85        vihollinen.Position = vektori;
86        vihollinen.Restitution = 1.0;
87        vihollinen.Image = vihukuva;
88        Add(vihollinen);
89        IntMeter vihunElamaLaskuri = new IntMeter(VIHUNALOITUSENERGIA, 0, 10000);
90        vihunElamaLaskuri.LowerLimit += delegate() { VihollinenKuolee(vihollinen); };
91        Label l = new Label();
92        l.TextColor = Color.Black;
93        l.BindTo(vihunElamaLaskuri);
94        l.Color = Color.Red;
95        l.Position = new Vector(Screen.Right - 50, Screen.Top - 50);
96        Add(l);
97        vihollinen.CanRotate = false;
98        //Tehdään uudet satunnaisaivot, jotka liikkuvat nopeudella 200
99        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
100        satunnaisAivot.ChangeMovementSeconds = 3;
101        vihollinen.Brain = satunnaisAivot;
102        AddCollisionHandler(olio, vihollinen, CollisionHandler.AddMeterValue(vihunElamaLaskuri, -1));
103
104        AddCollisionHandler(olio, vihollinen, CollisionHandler.AddMeterValue(laskuri, 1));
105        // tehdään vihulle ase:
106        vihunAse = new AssaultRifle(0, 0);
107        vihunAse.Ammo.Value = 100000;
108        // mitä tapahtuu, kun ammus osuu johonkin:
109        vihunAse.ProjectileCollision = AmmusOsui;
110        vihollinen.Add(vihunAse);
111        ampumisAjastin = new Timer();
112        ampumisAjastin.Interval = 2.0;
113        ampumisAjastin.Timeout += VihuAmpuu;
114        ampumisAjastin.Start();
115    }
116
117    private void VihollinenKuolee(PhysicsObject vihollinen)
118    {
119        vihollinen.Destroy();
120        KysyParhaatPisteet();
121        vihunAse.Destroy();
122    }
123
124    void OlioTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
125    {
126        kohde.Destroy();
127    }
128
129    void VihuAmpuu()
130    {
131        vihunAse.Angle = RandomGen.NextDirection().Angle;
132       
133        vihunAse.Shoot();
134    }
135
136    void AmmusOsui(PhysicsObject tormaaja, PhysicsObject kohde)
137    {
138        if (kohde == null) return;
139        if (kohde.Equals(olio)) // Jos ammuksen kohteena on pelaaja eli pelaaja kuolee ja hävisi pelin:
140        {
141            olio.Destroy(); // tapetaan pelaaja
142            KysyParhaatPisteet();
143            Timer.SingleShot(3, vihollinen.Destroy);
144            Timer.SingleShot(3, vihunAse.Destroy);
145            Timer.SingleShot(3, ampumisAjastin.Stop);
146
147        }
148        tormaaja.Destroy(); // Hävitetään panos
149    }
150
151    private void KysyParhaatPisteet()
152    {
153        topLista.EnterAndShow(laskuri.Value);
154        topLista.HighScoreWindow.Closed += Valikko;
155    }
156
157    void TestiValikko()
158    {
159        MultiSelectWindow msw = new MultiSelectWindow("Haloo", "Eka", "Toka");
160        Add(msw);
161        msw.AddItemHandler(0, delegate { Valikko(null); });
162        msw.AddItemHandler(1, ParhaatPisteet);
163    }
164
165    void ParhaatPisteet()
166    {
167        topLista.Show();
168        topLista.HighScoreWindow.Closed += Valikko;
169    }
170
171    void luoLaskuri()
172    {
173   
174    }
175}
Note: See TracBrowser for help on using the repository browser.