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

Revision 3943, 5.6 KB checked in by sieerinn, 8 years ago (diff)
RevLine 
[3933]1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
[3939]7using Jypeli.Widgets;
[3933]8
9public class JHaapaduuuuuuuuuuuu__________________ : PhysicsGame
10{
[3943]11    PhysicsObject vihollinen;
[3939]12    AssaultRifle vihunAse;
[3943]13    Timer ampumisAjastin;
[3939]14    EasyHighScore topLista = new EasyHighScore();
[3933]15    PhysicsObject olio;
[3943]16     Image olionKuva = LoadImage("Hyvis");
[3933]17    Image lattiankuva = LoadImage("Floor");
[3943]18    Image taustakuva =LoadImage("christmas-gifts-013[1]");
[3933]19    Image seinankuva = LoadImage("Wall");
[3939]20    Image vihukuva = LoadImage("Pahis");
21    double nopeus = 500.0;
22    int VIHUNALOITUSENERGIA = 10000;
23
24    IntMeter laskuri = new IntMeter(0);
25
26
[3933]27    public override void Begin()
28    {
[3939]29        Valikko(null);
30    }
[3933]31
[3939]32    private void AloitaPeli()
33    {
[3943]34        ClearAll();
[3933]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);
[3939]43        olio.MaxVelocity = 2000;
[3933]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;
[3939]51        Level.Background.ScaleToLevelByWidth();
[3933]52
53        Keyboard.Listen(Key.Left, ButtonState.Down,
[3939]54          LiikutaPelaajaa, null, new Vector(-nopeus, 0));
[3933]55        Keyboard.Listen(Key.Right, ButtonState.Down,
[3939]56          LiikutaPelaajaa, null, new Vector(nopeus, 0));
[3933]57        Keyboard.Listen(Key.Up, ButtonState.Down,
[3939]58          LiikutaPelaajaa, null, new Vector(0, nopeus));
[3933]59        Keyboard.Listen(Key.Down, ButtonState.Down,
[3939]60          LiikutaPelaajaa, null, new Vector(0, -nopeus));
[3933]61
[3939]62        LuoVihu(new Vector(-600, 85));
[3933]63    }
64
[3939]65    void Valikko(Window ikkuna)
66    {
[3943]67        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Parhaat pisteet","Lopeta");
[3939]68        Add(alkuValikko);
69        alkuValikko.AddItemHandler(0, AloitaPeli);
70        alkuValikko.AddItemHandler(1, ParhaatPisteet);
71        alkuValikko.AddItemHandler(2, Exit);
[3943]72        Level.Background.Image = taustakuva;
[3939]73    }
[3933]74    void LiikutaPelaajaa(Vector vektori)
75    {
[3939]76        olio.Stop();
[3933]77        olio.Angle = vektori.Angle;
[3939]78        olio.Hit(vektori);
[3933]79    }
80
81    void LuoVihu(Vector vektori)
82    {
83
[3943]84        vihollinen = new PhysicsObject(100.0, 100.0);
[3939]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);
[3943]111        ampumisAjastin = new Timer();
[3939]112        ampumisAjastin.Interval = 2.0;
113        ampumisAjastin.Timeout += VihuAmpuu;
114        ampumisAjastin.Start();
[3933]115    }
116
[3939]117    private void VihollinenKuolee(PhysicsObject vihollinen)
118    {
119        vihollinen.Destroy();
120        KysyParhaatPisteet();
121        vihunAse.Destroy();
122    }
[3933]123
[3939]124    void OlioTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
125    {
126        kohde.Destroy();
127    }
[3933]128
[3939]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();
[3943]143            Timer.SingleShot(3, vihollinen.Destroy);
144            Timer.SingleShot(3, vihunAse.Destroy);
145            Timer.SingleShot(3, ampumisAjastin.Stop);
146
[3939]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.