source: 2013/27/ViljamiV/kill_everypody_GAME/kill_everypody_GAME/kill_everypody_GAME/kill_everypody_GAME.cs @ 4374

Revision 4374, 5.8 KB checked in by vilmikvi, 9 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 kill_everypody_GAME : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image[] seisomisanimaatio = LoadImages("Trollface");
18    Image[] kävelykuvat = LoadImages("Trollface","Trollface2");
19    Image[] hyokkausanimaatio = LoadImages("Trollfaceampuu");
20
21    Image esKuva = LoadImage("es");
22    Image ammusKuva = LoadImage("Panos");
23    Timer lataaEnergiaaAjastin = new Timer();
24    DoubleMeter energia;
25    DoubleMeter elamat;
26
27    SoundEffect laaserAani = LoadSoundEffect("maali");
28
29    public override void Begin()
30    {
31        Gravity = new Vector(0, -1000);
32       
33
34        LuoKentta();
35        LisaaNappaimet();
36
37        LisaaEnergiaPalkki();
38        LisaaElamaPalkki();
39
40        lataaEnergiaaAjastin.Interval = 0.9;
41        lataaEnergiaaAjastin.Timeout += delegate { energia.Value += 1; };
42        lataaEnergiaaAjastin.Start();
43
44        Camera.Follow(pelaaja1);
45        Camera.ZoomFactor = 1.2;
46        Camera.StayInLevel = true;
47    }
48
49    void LisaaEnergiaPalkki()
50    {
51        energia = new DoubleMeter(100, 0, 100);
52
53        ProgressBar energiaPalkki = new ProgressBar(200, 35);
54        energiaPalkki.Position = new Vector(Screen.Right - 150, Screen.Top - 50);
55        energiaPalkki.Color = Color.Blue;
56        energiaPalkki.BarColor = Color.Violet;
57        energiaPalkki.BindTo(energia);
58        Add(energiaPalkki);
59   
60    }
61    void LisaaElamaPalkki()
62    {
63        elamat = new DoubleMeter(10, 0, 10);
64
65        ProgressBar ElamaPalkki = new ProgressBar(200, 35);
66        ElamaPalkki.Position = new Vector(Screen.Right - 150, Screen.Top - 10);
67        ElamaPalkki.Color = Color.Blue;
68        ElamaPalkki.BarColor = Color.Red;
69        ElamaPalkki.BindTo(elamat);
70        Add(ElamaPalkki);
71    }
72    void LuoKentta()
73    {
74       
75        TileMap kentta = TileMap.FromLevelAsset("kentta1");
76        kentta.SetTileMethod('#', LisaaTaso);
77        kentta.SetTileMethod('*', LisaaTahti);
78        kentta.SetTileMethod('N', LisaaPelaaja);
79        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
80        Level.CreateBorders();
81        Level.Background.Image = LoadImage("Tausta2");
82        Level.Background.FitToLevel();
83    }
84
85    void LisaaTaso(Vector paikka, double leveys, double korkeus)
86    {
87        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
88        taso.Position = paikka;
89        taso.Color = Color.Green;
90        Add(taso);
91    }
92
93    void LisaaTahti(Vector paikka, double leveys, double korkeus)
94    {
95        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
96        tahti.IgnoresCollisionResponse = true;
97        tahti.Position = paikka;
98        tahti.Image = esKuva;
99        tahti.Tag = "es";
100        Add(tahti);
101    }
102
103    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
104    {
105        pelaaja1 = new PlatformCharacter(leveys, korkeus);
106        pelaaja1.Position = paikka;
107        pelaaja1.Mass = 4.0;
108        pelaaja1.AnimWalk = new Animation(kävelykuvat);
109        pelaaja1.AnimIdle = new Animation(seisomisanimaatio);
110        AddCollisionHandler(pelaaja1, "es", TormaaTahteen);
111       
112
113        //pelaaja1 on PlatformCharacter-tyyppinen
114        pelaaja1.Weapon = new AssaultRifle(30, 10);
115
116        //Ammusten määrä aluksi:
117        pelaaja1.Weapon.Ammo.Value = 5000;
118        pelaaja1.Weapon.FireRate = 5000;
119        pelaaja1.Weapon.IsVisible = false;
120        //Mitä tapahtuu kun ammus osuu johonkin?
121        pelaaja1.Weapon.ProjectileCollision = AmmusOsui;
122
123        Add(pelaaja1);
124    }
125
126
127    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
128    {
129        ammus.Destroy();
130    }
131
132
133    void AmmuAseella(PlatformCharacter pelaaja)
134    {
135        if (energia.Value < 1) return;
136        PhysicsObject ammus = pelaaja.Weapon.Shoot();
137        pelaaja1.PlayAnimation(new Animation(hyokkausanimaatio));
138        energia.Value--;
139
140        if (ammus != null)
141        {
142            ammus.Width *= 2;
143            ammus.Image = ammusKuva;
144            //ammus.MaximumLifetime = TimeSpan.FromSeconds(5.0)
145        }
146       
147    }
148
149
150
151    void LisaaNappaimet()
152    {
153        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1);
154        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
155        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
156
157        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
158        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
159        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
160
161        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
162
163        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
164        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
165        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
166
167        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
168    }
169
170    void Liikuta(PlatformCharacter hahmo, double nopeus)
171    {
172        hahmo.Walk(nopeus);
173    }
174
175    void Hyppaa(PlatformCharacter hahmo, double nopeus)
176    {
177        hahmo.Jump(nopeus);
178    }
179
180    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
181    {
182        MessageDisplay.Add("Keräsit es energia juoman!");
183        tahti.Destroy();
184    }
185
186
187
188
189
190
191
192}
Note: See TracBrowser for help on using the repository browser.