source: 2012/24/AnttoniS/Ufot/Ufot/Ufot/Ufot.cs @ 2992

Revision 2992, 4.6 KB checked in by sijoseha, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Ufot : PhysicsGame
10{
11    PeliHahmo vartalo;
12    DoubleMeter voimaMittari;
13    PhysicsObject pää;
14    Image ukko = LoadImage("ukko");
15    ExplosionSystem rajahdys;
16    PhysicsObject olio;
17    Image olioKuva = LoadImage("olio");
18    Image taustakuva = LoadImage("background");
19    public override void Begin()
20    {
21        // TODO: Kirjoita ohjelmakoodisi tähän
22        voimaMittari = new DoubleMeter(10);
23        voimaMittari.MaxValue = 10;
24        ProgressBar voimaPalkki = new ProgressBar(200, 10);
25        voimaPalkki.BindTo(voimaMittari);
26        Add(voimaPalkki);
27        voimaPalkki.X = Screen.Right - 150;
28        voimaPalkki.Y = Screen.Top - 300;
29        voimaPalkki.Angle = Angle.RightAngle;
30        voimaPalkki.BarColor = Color.Green;
31        voimaPalkki.BorderColor = Color.White;
32        voimaPalkki.Angle = Angle.FromDegrees(0);
33
34
35        Level.CreateBorders(false);
36        Level.BackgroundColor = Color.LightGray;
37        Level.Background.Image = taustakuva;
38       
39
40         rajahdys = new ExplosionSystem(LoadImage("rajahdys"), 500);
41         rajahdys.MaxVelocity = 10;
42         rajahdys.MinVelocity = 5;
43        rajahdys.BlendMode = BlendMode.Additive;
44         Add(rajahdys);
45     
46        vartalo = new PeliHahmo(75, 150);
47        vartalo.Mass = (9999999);
48        PlasmaCannon ase = new PlasmaCannon(30, 20);
49        vartalo.Add(ase);
50        ase.X = 20;
51        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, AmmuAseella, "Ammu", ase);
52        Mouse.IsCursorVisible = false;
53        Mouse.ListenMovement(0.1, KuunteleLiiketta, null);
54        vartalo.X = -0.0;
55        vartalo.Y = -380;
56        vartalo.Color = Color.Beige;
57        vartalo.Shape = Shape.Ellipse;
58        Gravity = new Vector(0.0, 0.0);
59        vartalo.Restitution = 1.0;
60        Add(vartalo);
61        vartalo.CollisionIgnoreGroup = 0;
62        vartalo.Image = ukko;
63
64        olio = new PhysicsObject(500, 220);
65        olio.Color = Color.Gray;
66        olio.Shape = Shape.Circle;
67        olio.X = 0.0;
68        olio.Y = 185;
69        Add (olio);
70        olio.IgnoresCollisionResponse = false;
71        LaserGun laserPyssy = new LaserGun(20, 5);
72        olio.Add(laserPyssy);
73       // laserPyssy.ProjectileCollision = LaserSadeOsuu;
74        olio.Image = olioKuva; 
75        RandomMoverBrain satunnaisAivot = new RandomMoverBrain();
76        olio.Brain = satunnaisAivot;
77        satunnaisAivot.Active = true;
78        satunnaisAivot.Speed = 7000;
79
80        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
81        Keyboard.Listen(Key.Space, ButtonState.Pressed,
82                     VahennaVoimia, "Vähennä pelaajan voimia");
83        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
84    }
85
86    void KuunteleLiiketta(AnalogState hiirenTila)
87    {
88        if(Mouse.PositionOnWorld.X > Level.Left && Mouse.PositionOnWorld.X < Level.Right)
89        vartalo.X = Mouse.PositionOnWorld.X;
90    }
91
92    void AmmuAseella(PlasmaCannon ase )
93    {
94        PhysicsObject ammus = ase.Shoot();
95
96        if (ammus != null)
97        {
98            ammus.Size *= 2;
99            ammus.Color = Color.Yellow;
100            AddCollisionHandler(ammus, AmmusTormaa);
101        }
102
103       
104    }
105
106    void AmmusTormaa(PhysicsObject tormaaja, PhysicsObject kohde)
107    {
108        rajahdys.AddEffect(tormaaja.Position, 40);
109        tormaaja.Destroy();
110       
111    }
112
113    class PeliHahmo : PhysicsObject
114    {
115        public int Elamat = 3;
116
117        public PeliHahmo(double leveys, double korkeus)
118          :  base(leveys, korkeus)
119        {
120        }
121    }
122
123    void VahennaVoimia()
124    {
125        voimaMittari.Value--;
126    }
127
128    void VoimaLoppui(double mittarinArvo)
129    {
130        MessageDisplay.Add("Voimat loppuivat, voi voi.");
131    }
132
133    IntMeter pisteLaskuri;
134
135    void LuoLaskuri()
136    {
137        pisteLaskuri = new IntMeter(0);
138
139        Label pisteNaytto = new Label();
140        pisteNaytto.X = Screen.Left + 100;
141        pisteNaytto.Y = Screen.Top - 100;
142        pisteNaytto.TextColor = Color.Black;
143        pisteNaytto.Color = Color.White;
144
145        pisteNaytto.BindTo(pisteLaskuri);
146        Add(pisteNaytto);
147
148        pisteNaytto.BindTo(pisteLaskuri);
149        Add(pisteNaytto);
150
151        Label pisteTeksti = new Label("Elämät: ");
152        pisteTeksti.X = Screen.Left + 50;
153        pisteTeksti.Y = Screen.Top - 100;
154        pisteTeksti.TextColor = Color.Red;
155        pisteTeksti.Color = Color.Black;
156        Add(pisteTeksti);
157    }
158}
Note: See TracBrowser for help on using the repository browser.