source: 2013/30/VilleF/Lentokone/Lentokone/Lentokone/Lentokone.cs @ 4621

Revision 4621, 5.0 KB checked in by viosfilp, 9 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Lentokone : PhysicsGame
10{
11    private Animation ukkelianim;
12
13
14    Image ukkeliP = LoadImage("ukkeliP");
15    Image pommik = LoadImage("pommi");
16
17    Image maisema = LoadImage("havutausta");
18    Image havusauruskuva = LoadImage("havusauruskuva");
19    Vector nopeusYlos = new Vector(0, 1000);
20    Vector nopeusAlas = new Vector(0, -1000);
21    PhysicsObject pelaaja;
22    PhysicsObject pommi;
23    PhysicsObject vihu;
24   
25
26    private Animation sauruksenLento;
27
28
29
30    public override void Begin()
31    {
32        ukkelianim = LoadAnimation("ukkeli");
33        sauruksenLento = LoadAnimation("animaatio");
34        Level.Width = 1920;
35        Level.Height = 1080;
36        Gravity = new Vector(0.0, -500);
37        //MediaPl-ayer.Play("
38        LuoKentta();
39        LuoPelaaja();
40        pelaaja.Animation = sauruksenLento;
41        pelaaja.Animation.Start();
42        pelaaja.Animation.FPS = 3;
43
44        Camera.ZoomToLevel();
45        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
46        pelaaja.Animation = sauruksenLento;
47        pelaaja.Animation.Start();
48        pelaaja.Animation.FPS = 3;
49
50        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
51        Keyboard.Listen(Key.Left, ButtonState.Down,
52        HidastaPelaajaa, null);
53        Keyboard.Listen(Key.Right, ButtonState.Down,
54        LiikutaPelaajaa, null, 1);
55        Keyboard.Listen(Key.Up, ButtonState.Down,
56        KaannaPelaajaa, null, 1.0);
57        Keyboard.Listen(Key.Up, ButtonState.Released,
58        KaannaPelaajaa, null, 0.0);
59        Keyboard.Listen(Key.Down, ButtonState.Down,
60        KaannaPelaajaa, null, -1.0);
61        Keyboard.Listen(Key.Down, ButtonState.Released,
62        KaannaPelaajaa, null, 0.0);
63        Keyboard.Listen(Key.Space, ButtonState.Released, TiputaPommi, "Ammu");
64        Keyboard.Listen(Key.R, ButtonState.Released, LuoPelaaja, "Ammu");
65        Keyboard.Listen(Key.V, ButtonState.Released, LisaaVihollinen, "Ammu");
66    }
67    void LisaaVihollinen()
68    {
69        PhysicsObject ukkeli = new PhysicsObject(40, 20);
70        ukkeli.Animation = ukkelianim;
71        ukkeli.Animation.Start();
72        ukkeli.Animation.FPS = 5;
73       
74           
75
76        Add(vihu);
77    }
78   
79
80       void TiputaPommi()
81
82    {
83
84        pommi = new PhysicsObject(50, 50);
85        //pommi.Shape = Shape.FromImage("pommik");
86        pommi.Image = pommik;
87        pommi.Position = pelaaja.Position;
88       
89        pommi.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup;
90
91
92        Add(pommi);
93       
94        AddCollisionHandler(pommi, "vihollinen", CollisionHandler.ExplodeTarget(200, true));
95        AddCollisionHandler(pommi, CollisionHandler.ExplodeObject(20, true));
96
97
98    }
99    void KaannaPelaajaa(double kaannos)
100    {
101        pelaaja.AngularVelocity = kaannos;
102
103       
104    }
105
106
107    protected override void Update(Time time)
108    {
109        base.Update(time);
110        if (pelaaja != null)
111        {
112            if (pelaaja.Position.X > Level.Right) pelaaja.Position = new Vector(Level.Left, pelaaja.Position.Y);
113            if (pelaaja.Position.X < Level.Left) pelaaja.Position = new Vector(Level.Right, pelaaja.Position.Y);
114        }
115    }
116
117    void HidastaPelaajaa()
118    {
119        pelaaja.Velocity = new Vector(pelaaja.Velocity.X * 0.95, pelaaja.Velocity.Y);
120       
121    }
122
123    void PelaajaTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
124    {
125       
126    }
127    void LiikutaPelaajaa(int suunta)
128    {
129
130        pelaaja.Push(Vector.FromLengthAndAngle(3000*suunta, pelaaja.Angle));
131
132    }
133
134
135    void LuoKentta()
136    {
137        Level.Background.Image = maisema;
138        Level.Background.FitToLevel();
139        Surface alareuna = new Surface(Level.Width, 30, 50, 60, 10);
140        alareuna.Color = Color.Green;
141        alareuna.Bottom = Level.Bottom;
142        Add(alareuna);
143       
144
145    }
146    void LuoPelaaja()
147    {
148        pelaaja = new PhysicsObject(150.0, 190.0);
149        pelaaja.Shape = Shape.FromImage(havusauruskuva);
150        pelaaja.Image = havusauruskuva;
151        pelaaja.LinearDamping = 0.99;
152        pelaaja.CollisionIgnoreGroup = 2;
153        //pelaaja.MirrorImage();
154        Add(pelaaja);
155       AddCollisionHandler(pelaaja, CollisionHandler.ExplodeObject(200, true));
156        pelaaja.MaxVelocity = 600;
157       Timer ajastin = new Timer();
158       ajastin.Interval = 0.1;
159       ajastin.Timeout += KaannaKohtiMaata;
160       ajastin.Start();
161    }
162
163    void KaannaKohtiMaata()
164    {
165        if((pelaaja.Angle.Degrees > 70) && (pelaaja.Angle.Degrees < 110))
166            return;
167        if ((pelaaja.Angle.Degrees >= 110) || (pelaaja.Angle.Degrees <= -90))
168            pelaaja.Angle = Angle.FromDegrees(pelaaja.Angle.Degrees + 0.4);
169        else
170            pelaaja.Angle = Angle.FromDegrees(pelaaja.Angle.Degrees - 0.4);
171    }
172
173   
174}
Note: See TracBrowser for help on using the repository browser.