source: 2013/30/ArtturiN/Omapeli/Omapeli/Omapeli/Omapeli.cs @ 4638

Revision 4638, 5.1 KB checked in by juiitamm, 6 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
9
10public class Sinko : Weapon
11{       
12        public Sinko( double width, double height )
13            : base( width, height )
14        {
15            Power.DefaultValue = Power.Value = 15000;
16            TimeBetweenUse = TimeSpan.FromSeconds( 4 );
17       
18            Image = Game.LoadImage( "RPG7" );
19            AttackSound = Game.LoadSoundEffectFromResources( "CannonFire" );
20        }
21       
22        protected override PhysicsObject CreateProjectile()
23        {
24            return new CannonBall( 5 );
25        }
26}
27
28public class Omapeli : PhysicsGame
29{
30
31    PhysicsObject minaMies;
32
33    PhysicsObject sinaMies;
34
35    Image KuvaT = LoadImage("kuva");
36   
37    Image tulenKuva = LoadImage("Tuli");
38
39    Animation minaJuoksee = new Animation(LoadImages("MinaMies", "MinaMies3"));
40
41    Animation sinaJuoksee = new Animation(LoadImages("SinäMies2", "SinäMies3"));
42
43    bool painovoima = false;
44
45    public override void Begin()
46    {
47        Mouse.IsCursorVisible = true;
48        Alkuvalikko();
49        MediaPlayer.Play("Maclemore");
50    }
51
52    void Aloitapeli()
53    {
54       
55        //LuoKentta();
56
57        if (painovoima)
58        {
59            Gravity = new Vector(0, -200);
60        }
61
62        minaMies = new PhysicsObject(250, 250);
63        minaMies.Position = new Vector(0, -400);
64        minaMies.Animation = minaJuoksee;
65        minaMies.Animation.FPS = 5;
66        if (painovoima) minaMies.CanRotate = false;
67        Add(minaMies);
68
69        Sinko minaSinko = new Sinko( 250, 40);
70        minaMies.Add(minaSinko);
71
72        sinaMies = new PhysicsObject(250, 250);
73        sinaMies.Position = new Vector(0, -400);
74        sinaMies.Animation = sinaJuoksee;
75        sinaMies.Animation.FPS = 5;
76        if (painovoima) sinaMies.CanRotate = false;
77        Add(sinaMies);
78
79        Sinko sinaSinko = new Sinko(250, 40);
80        sinaMies.Add(sinaSinko);
81
82        taustakuva();
83
84        Camera.ZoomToLevel();
85        Level.BackgroundColor = Color.Black;
86        Level.CreateBorders(1.0, true, Color.Red);
87
88        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
89        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "ampuu");
90
91        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikuttaa", minaMies, minaSinko, new Vector(-200, 0));
92        Keyboard.Listen(Key.Left, ButtonState.Released, Pysahdy, "Liikuttaa", minaMies);
93
94        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikuttaa", minaMies, minaSinko, new Vector(200, 0));
95        Keyboard.Listen(Key.Right, ButtonState.Released, Pysahdy, "Liikuttaa", minaMies);
96
97
98
99        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikuttaa", sinaMies, sinaSinko, new Vector(-200, 0));
100        Keyboard.Listen(Key.A, ButtonState.Released, Pysahdy, "Liikuttaa", sinaMies);
101
102        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikuttaa", sinaMies, sinaSinko, new Vector(200, 0));
103        Keyboard.Listen(Key.D, ButtonState.Released, Pysahdy, "Liikuttaa", sinaMies);
104    }
105
106    void Alkuvalikko()
107    {
108        MultiSelectWindow alkuValikko = new MultiSelectWindow("Funny RPG 7", "Aloita peli", "Asetukset", "Lopeta peli");
109        Add(alkuValikko);
110
111        alkuValikko.AddItemHandler(0, Aloitapeli);
112        alkuValikko.AddItemHandler(1, Asetukset);
113        alkuValikko.AddItemHandler(2, Exit);
114    }
115
116    void Asetukset()
117    {
118        MultiSelectWindow asetusValikko = new MultiSelectWindow("Asetukset", "Painovoima päälle", "Painovoima pois", "Takaisin");
119        Add(asetusValikko);
120
121        asetusValikko.AddItemHandler(0, delegate { painovoima = true; });
122        asetusValikko.AddItemHandler(1, delegate { painovoima = false; });
123        asetusValikko.Closed += delegate { Alkuvalikko(); };
124    }
125
126    void Pysahdy(PhysicsObject mies)
127    {
128        mies.Velocity = Vector.Zero;
129        mies.Animation.Stop();
130    }
131
132
133    void Liikuta(PhysicsObject mies, Sinko ase, Vector suunta)
134    {
135        ase.Angle = suunta.Angle;
136        mies.Push(suunta);
137        mies.Animation.Resume();
138        //mies.Animation.Start();
139
140    }
141
142
143
144    void Ammu()
145    {
146        Vector paikka = Mouse.PositionOnWorld;
147
148        Flame liekki = new Flame(tulenKuva);
149        liekki.Position = paikka;
150        Add(liekki);
151
152
153    }
154
155
156    void LuoKentta()
157    {
158        ColorTileMap kentta = new ColorTileMap("kentta1");
159        kentta.SetTileMethod(Color.Red, LuoSampo);
160
161        kentta.Execute(50, 50);
162    }
163
164    void LuoSampo(Vector paikka, double leveys, double korkeus)
165    {
166        PhysicsObject sampo = new PhysicsObject(leveys * 8, korkeus * 8);
167        sampo.Position = paikka;
168        sampo.Image = LoadImage("Sampo");
169        Add(sampo);
170
171    }
172
173
174    void taustakuva()
175    {
176        Level.Width = 2800;
177        Level.Height = 1570;
178
179        Level.Background.Image = KuvaT;
180       
181
182        Level.Background.FitToLevel();
183
184    }
185
186
187    void taustakuva1()
188    {
189
190
191
192        // TODO: Kirjoita ohjelmakoodisi tähän
193
194
195
196    }
197
198
199
200
201
202
203}
Note: See TracBrowser for help on using the repository browser.