source: 2012/27/MattiR/FysiikkaPeli3/FysiikkaPeli3/FysiikkaPeli3/AmmustenVaistely.cs @ 3644

Revision 3644, 5.9 KB checked in by majaraut, 10 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 FysiikkaPeli3 : PhysicsGame
10{
11    PlatformCharacter pelaaja1;
12    Image[] ssprites = LoadImages("run 1", "run 2", "run 3");
13    Image[] pictures = LoadImages("ff", "stand 2", "stand 3", "stand 4");
14    Image[] kävelyVasemmalle;
15    Image[] vasemmallePaikallaan;
16    Image[] vasemmalleTippuminen;
17    Image[] tippumisAnimaatio = LoadImages("fall 1","fall 2");
18    IntMeter HPlaskuri;
19    IntMeter elamaLaskuri;
20    SoundEffect perhana = LoadSoundEffect("perhana");
21    public override void Begin()
22    {
23        ClearAll();
24
25        // TODO: Kirjoita ohjelmakoodisi tähän
26        kävelyVasemmalle = Image.Mirror(ssprites);
27        vasemmallePaikallaan = Image.Mirror(pictures);
28        vasemmalleTippuminen = Image.Mirror(tippumisAnimaatio);
29        LuoPelaaja();
30        Gravity = new Vector(0, -500);
31        Luokentta();
32        Level.CreateBorders();
33        keyboard();
34        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
35        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
36        LuoHPmittari();
37        LuoelamaLaskuri();
38        Camera.ZoomToLevel();
39    }
40    void Luokentta()
41    {
42        TileMap ruudut = TileMap.FromLevelAsset("kenttä 1");
43        ruudut.SetTileMethod('-', Luotaso);
44        ruudut.SetTileMethod('v', Lasertykki);
45        ruudut.Execute(13, 13);
46    }
47    void Luotaso(Vector paikka, double leveys, double korkeus)
48    {
49        PhysicsObject taso = PhysicsObject.CreateStaticObject(13, 13);
50        taso.Position = paikka;
51        Add(taso);
52    }
53    void LuoPelaaja()
54    {
55        pelaaja1 = new PlatformCharacter(14.0, 15.0);
56        Add(pelaaja1);
57        pelaaja1.RightIdleAnimation = new Animation(pictures);
58        pelaaja1.RightIdleAnimation.FPS = 7;
59        pelaaja1.LeftIdleAnimation = new Animation(vasemmallePaikallaan);
60        pelaaja1.LeftIdleAnimation.FPS = 7;
61        pelaaja1.RightWalkingAnimation = new Animation(ssprites);
62        pelaaja1.RightWalkingAnimation.FPS = 18;
63        pelaaja1.LeftWalkingAnimation = new Animation(kävelyVasemmalle);
64        pelaaja1.LeftWalkingAnimation.FPS = 18;
65        AddCollisionHandler(pelaaja1,palautaAnimation);
66    }
67    void palautaAnimation(PhysicsObject tormaaja, PhysicsObject kohde)
68    {
69        pelaaja1.RightIdleAnimation = new Animation(pictures);
70        pelaaja1.RightIdleAnimation.FPS = 7;
71        pelaaja1.LeftIdleAnimation = new Animation(vasemmallePaikallaan);
72        pelaaja1.LeftIdleAnimation.FPS = 7;
73        pelaaja1.RightWalkingAnimation = new Animation(ssprites);
74        pelaaja1.RightWalkingAnimation.FPS = 18;
75        pelaaja1.LeftWalkingAnimation = new Animation(kävelyVasemmalle);
76        pelaaja1.LeftWalkingAnimation.FPS = 18;
77    }
78
79    void keyboard()
80    {
81        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, pelaaja1, -60.0);
82        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, pelaaja1,60.0 );
83        Keyboard.Listen(Key.Up, ButtonState.Down, hyppaa, null, pelaaja1);
84    }
85    void LiikutaPelaajaa(PlatformCharacter pelaaja,double Nopeus )
86
87    {
88        pelaaja.Walk(Nopeus); 
89    }
90    void hyppaa(PlatformCharacter pelaaja)
91    {
92        pelaaja.Jump(400.0);
93        pelaaja.RightWalkingAnimation = pelaaja.RightIdleAnimation = new Animation(tippumisAnimaatio);
94        pelaaja.RightWalkingAnimation.FPS = 4;
95        pelaaja.RightIdleAnimation.FPS = 4;
96        pelaaja.LeftWalkingAnimation = pelaaja.LeftIdleAnimation = new Animation(vasemmalleTippuminen);
97        pelaaja.LeftWalkingAnimation.FPS = 4;
98        pelaaja.LeftIdleAnimation.FPS = 4;
99    }
100    void LuoHPmittari()
101    {
102        HPlaskuri = new IntMeter(100);
103        HPlaskuri.LowerLimit += HPloppui;
104        Label HPnaytto = new Label();
105        HPnaytto.X = Screen.Left + 100;
106        HPnaytto.Y = Screen.Top - 100;
107        HPnaytto.TextColor = Color.Black;
108        HPnaytto.Color = Color.Blue;
109
110        HPnaytto.BindTo(HPlaskuri);
111        Add(HPnaytto);
112    }
113    void LuoelamaLaskuri()
114    {
115        elamaLaskuri = new IntMeter(3);
116        Label elamaNaytto = new Label();
117        elamaLaskuri.LowerLimit += pelaajaKuolee;
118        elamaNaytto.X = Screen.Left + 100;
119        elamaNaytto.Y = Screen.Top - 80;
120        elamaNaytto.Color = Color.Gold;
121        elamaNaytto.TextColor = Color.Red;
122        elamaNaytto.BindTo(elamaLaskuri);
123        Add(elamaNaytto);
124    }
125    void Lasertykki(Vector paikka, double leveys, double korkeus)
126    {
127        PhysicsObject Lasertykki = PhysicsObject.CreateStaticObject(20, 10);
128        Lasertykki.Position = paikka;
129        Lasertykki.Shape = Shape.Rectangle;
130       
131        Add(Lasertykki);
132        Timer ajastin = new Timer();
133        ajastin.Interval = 1;
134        ajastin.Timeout += delegate { ammu(Lasertykki.Position - new Vector(Lasertykki.Width / 2, 0)); };
135        ajastin.Start();
136    }
137    void ammu(Vector paikka)
138    {
139        PhysicsObject ammus = new PhysicsObject(13, 14);
140        ammus.Position = paikka;
141        ammus.Shape = Shape.Circle;
142        Add(ammus);
143        ammus.Hit(new Vector(-600, 0));
144        ammus.MaximumLifetime = TimeSpan.FromSeconds(1.0);
145        PlaySound("laser fire sound");
146        AddCollisionHandler(ammus, pelaaja1, pelaajaTormasi);
147    }
148    void pelaajaTormasi(PhysicsObject ammus, PhysicsObject pelaaja)
149    {
150        ammus.Destroy();
151        pelaaja1.Hit(new Vector(-2000, 0));
152        HPlaskuri.Value = HPlaskuri.Value - 14;
153    }
154    void pelaajaKuolee()
155    {
156        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
157        "Aloita peli", "Lopeta");
158        Add(alkuValikko);
159    }
160    void HPloppui()
161    {
162        elamaLaskuri.Value--;
163        HPlaskuri.Value = 100;
164        perhana.Play();
165    }
166}
Note: See TracBrowser for help on using the repository browser.