source: 2017/30/OlliL/Bomb helicopter/Bomb helicopter/Bomb_helicopter/Bomb_helicopter.cs @ 9116

Revision 9116, 3.7 KB checked in by npo17_56, 2 years ago (diff)

Kranun heitto

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Bomb_helicopter : PhysicsGame
10{
11    Vector nopeusYlos = new Vector(0, 300);
12    Vector nopeusAlas = new Vector(0, -300);
13    Vector nopeusOikea = new Vector(600, 0);
14    Vector nopeusVasen = new Vector(-600, 0);
15
16    Image taustaKuva = LoadImage("Kentta2");
17    private Image[] ropelinPyoriminen = LoadImages("ropeli1", "ropeli2");
18    PhysicsObject helikopteri;
19    Image laukaisin = LoadImage("laukaisin");
20    PhysicsObject laukaisija;
21   
22
23
24    public override void Begin()
25    {
26        Level.Width = Window.Width*3;
27        Level.Height = Window.Height;
28        Level.CreateBorders();
29        Camera.ZoomToLevel();
30        Camera.StayInLevel = true;
31        LuoHelikopteri(-2500, 0.0);
32        AsetaOhjaimet();
33        Camera.Follow(helikopteri);
34        Laukaisija(-100, -400);
35        Laukaisija(-900, -450);
36
37        Gravity = new Vector(0.0, -800.0);
38
39        Level.Background.Image = taustaKuva;
40        Level.Background.FitToLevel();
41        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
42    }
43
44    void AsetaOhjaimet()
45    {
46        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Kopteri ylös", helikopteri, nopeusYlos);
47        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, helikopteri, Vector.Zero);
48        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Kopteri ylös", helikopteri, nopeusAlas);
49        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, helikopteri, Vector.Zero);
50        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Kopteri ylös", helikopteri, nopeusOikea);
51        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, helikopteri, Vector.Zero);
52        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Kopteri ylös", helikopteri, nopeusVasen);
53        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, helikopteri, Vector.Zero);
54
55        Keyboard.Listen(Key.Space, ButtonState.Pressed, HeitaKranaatti, "Pelaaja 1: Heitä kranaatti", helikopteri);
56    }
57
58   
59
60    void AsetaNopeus(PhysicsObject helikopteri, Vector nopeus)
61    {
62        if (helikopteri.Y >= Level.Top - 50 && nopeus.Y >0) helikopteri.Velocity = new Vector(helikopteri.Velocity.X, 0);
63        else helikopteri.Velocity = nopeus;
64    }
65
66    void LuoHelikopteri(double x, double y)
67    {
68        helikopteri = new PhysicsObject(510, 133);
69        helikopteri.X = x;
70        helikopteri.Y = y;
71        ropelinPyoriminen = LoadImages("Helikopteri10", "Helikopteri11");
72        helikopteri.Animation = new Animation(ropelinPyoriminen);
73        helikopteri.Animation.Start();
74        helikopteri.CanRotate = false;
75        helikopteri.IgnoresGravity = true;
76        AddCollisionHandler(helikopteri, HelikopteriTormaa);
77        helikopteri.IgnoresCollisionResponse = true;
78        Add(helikopteri);
79
80       
81    }
82
83    void HelikopteriTormaa(PhysicsObject tormaaja, PhysicsObject kohde)
84    {
85        tormaaja.Velocity = new Vector(tormaaja.Velocity.X, 0);
86    }
87    void HeitaKranaatti(PhysicsObject helikopteri)
88    {
89        Grenade kranu = new Grenade(3.0);
90        kranu.Position = new Vector (helikopteri.X, helikopteri.Y -20);
91        Add(kranu);
92    }
93
94    void Laukaisija(double x, double y)
95    {
96        laukaisija = new PhysicsObject(60.0, 60.0);
97        laukaisija.X = x;
98        laukaisija.Y = y;
99        laukaisija.Width = 100.0;
100        laukaisija.Height = 100.0;
101        laukaisija.Image = laukaisin;
102        Add(laukaisija);
103        laukaisija.MakeStatic();
104    }
105}
Note: See TracBrowser for help on using the repository browser.