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

Revision 4653, 5.7 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 kentanKuva = LoadImage("Kuva");
36    Image tulenKuva = LoadImage("Tuli");
37
38    Animation minaJuoksee = new Animation(LoadImages("MinaMies", "MinaMies3"));
39
40    Animation sinaJuoksee = new Animation(LoadImages("SinäMies2", "SinäMies3"));
41
42    bool painovoima = false;
43
44    public override void Begin()
45    {
46        Mouse.IsCursorVisible = true;
47        Alkuvalikko();
48        MediaPlayer.Play("Maclemore");
49    }
50
51    void Aloitapeli()
52    {
53       
54        //LuoKentta();
55
56        if (painovoima)
57        {
58            Gravity = new Vector(0, -200);
59        }
60
61        minaMies = new PhysicsObject(250, 250);
62        minaMies.Position = new Vector(0, -400);
63        minaMies.Animation = minaJuoksee;
64        minaMies.Animation.FPS = 5;
65        if (painovoima) minaMies.CanRotate = false;
66        Add(minaMies);
67
68        Sinko minaSinko = new Sinko( 250, 40);
69        minaMies.Add(minaSinko);
70
71        sinaMies = new PhysicsObject(250, 250);
72        sinaMies.Position = new Vector(0, -400);
73        sinaMies.Animation = sinaJuoksee;
74        sinaMies.Animation.FPS = 5;
75        if (painovoima) sinaMies.CanRotate = false;
76        Add(sinaMies);
77
78        Sinko sinaSinko = new Sinko(250, 40);
79        sinaMies.Add(sinaSinko);
80
81        taustakuva();
82
83        Camera.ZoomToLevel();
84        Level.BackgroundColor = Color.Black;
85        Level.CreateBorders(1.0, true, Color.Red);
86
87        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
88        Mouse.Listen(MouseButton.Left, ButtonState.Pressed, Ammu, "ampuu");
89
90        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikuttaa", minaMies, minaSinko, new Vector(-200, 0));
91        Keyboard.Listen(Key.Left, ButtonState.Released, Pysahdy, "Liikuttaa", minaMies);
92
93        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikuttaa", minaMies, minaSinko, new Vector(200, 0));
94        Keyboard.Listen(Key.Right, ButtonState.Released, Pysahdy, "Liikuttaa", minaMies);
95
96
97
98        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikuttaa", sinaMies, sinaSinko, new Vector(-200, 0));
99        Keyboard.Listen(Key.A, ButtonState.Released, Pysahdy, "Liikuttaa", sinaMies);
100
101        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikuttaa", sinaMies, sinaSinko, new Vector(200, 0));
102        Keyboard.Listen(Key.D, ButtonState.Released, Pysahdy, "Liikuttaa", sinaMies);
103    }
104
105    void Alkuvalikko()
106    {
107        MultiSelectWindow alkuValikko = new MultiSelectWindow("Funny RPG 7", "Aloita peli", "Asetukset", "Lopeta peli");
108        Add(alkuValikko);
109
110        alkuValikko.AddItemHandler(0, Aloitapeli);
111        alkuValikko.AddItemHandler(1, Asetukset);
112        alkuValikko.AddItemHandler(2, Exit);
113    }
114
115    void Asetukset()
116    {
117        MultiSelectWindow asetusValikko = new MultiSelectWindow("Asetukset", "Painovoima päälle", "Painovoima pois", "Valitse kenttä", "Takaisin");
118        Add(asetusValikko);
119
120        asetusValikko.AddItemHandler(0, delegate { painovoima = true; });
121        asetusValikko.AddItemHandler(1, delegate { painovoima = false; });
122        asetusValikko.AddItemHandler(0, delegate { Alkuvalikko(); });
123        asetusValikko.AddItemHandler(1, delegate { Alkuvalikko(); });
124        asetusValikko.AddItemHandler(2, delegate
125        {
126            kenttavalikko();
127        });
128    }
129    void kenttavalikko()
130    {
131        MultiSelectWindow asetusValikko = new MultiSelectWindow("Kenttävalikko", "Forest", "City","Takaisin");
132
133        asetusValikko.AddItemHandler(0, delegate { kentanKuva = LoadImage("forest"); });
134        asetusValikko.AddItemHandler(1, delegate { kentanKuva = LoadImage("Kuva"); });
135        asetusValikko.Closed += delegate { Alkuvalikko(); };
136     
137        Add(asetusValikko);
138    }
139    void Pysahdy(PhysicsObject mies)
140    {
141        mies.Velocity = Vector.Zero;
142        mies.Animation.Stop();
143    }
144
145
146    void Liikuta(PhysicsObject mies, Sinko ase, Vector suunta)
147    {
148        ase.Angle = suunta.Angle;
149        mies.Push(suunta);
150        mies.Animation.Resume();
151        //mies.Animation.Start();
152
153    }
154
155
156
157    void Ammu()
158    {
159        Vector paikka = Mouse.PositionOnWorld;
160
161        Flame liekki = new Flame(tulenKuva);
162        liekki.Position = paikka;
163        Add(liekki);
164        PlaySound("RPG 7 sound effects");
165
166    }
167
168
169    void LuoKentta()
170    {
171        ColorTileMap kentta = new ColorTileMap("kentta1");
172        kentta.SetTileMethod(Color.Red, LuoSampo);
173
174        kentta.Execute(50, 50);
175    }
176
177    void LuoSampo(Vector paikka, double leveys, double korkeus)
178    {
179        PhysicsObject sampo = new PhysicsObject(leveys * 8, korkeus * 8);
180        sampo.Position = paikka;
181        sampo.Image = LoadImage("Sampo");
182        Add(sampo);
183
184    }
185
186
187    void taustakuva()
188    {
189        Level.Width = 2800;
190        Level.Height = 1570;
191
192        Level.Background.Image = kentanKuva;
193       
194
195        Level.Background.FitToLevel();
196
197    }
198
199
200    void taustakuva1()
201    {
202
203
204
205        // TODO: Kirjoita ohjelmakoodisi tähän
206
207
208
209    }
210
211
212
213
214
215
216}
Note: See TracBrowser for help on using the repository browser.