source: 2010/27/akrauhan/Wooden Warfare/Peli.cs @ 1144

Revision 1144, 4.4 KB checked in by akrauhan, 11 years ago (diff)

Uskovatunmatonta.

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5using System.Collections.Generic;
6
7public class Peli : PhysicsGame
8{
9    PhysicsObject varsijousi;
10    PhysicsObject kuormaauto;
11    LaserGun pyssy;
12    const int ruudunLeveys = 50;
13    const int ruudunKorkeus = 50;
14
15    Timer pomminPudotusAjastin;
16
17    protected override void Begin()
18    {
19        pomminPudotusAjastin = new Timer();
20
21        LuoKentta();
22        KaynnistaPomminpudotusAjastin();
23        Ohjaimet();
24    }
25
26    void KaynnistaPomminpudotusAjastin()
27    {       
28        pomminPudotusAjastin.Interval = 3;
29        pomminPudotusAjastin.Trigger += Pommeja;
30        Add(pomminPudotusAjastin);
31    }
32
33    void NopeutaPommienPutoamista()
34    {
35        pomminPudotusAjastin.Interval /= 2;
36    }
37
38    void HidastaPommienPutoamista()
39    {
40        // Jaa intervalli ykköstä pienemmällä
41    }
42
43
44    void Pommeja(Timer ajastin)
45    {
46
47        // Arvotan luku väliltä [Level.Left, Level.Right]
48        double x = RandomGen.NextDouble(Level.Left, Level.Right);
49        double y = 600.0;
50
51        // Pommit putoilevat.. Tee uusi fysiikkaolio ja lisää sille törmäyksenkäsittelijä
52    }
53
54    void LuoKentta()
55    {
56        varsijousi = new Automobile(75, 30);
57        varsijousi.Shape = Shapes.Rectangle;
58        varsijousi.X = 0;
59        varsijousi.Y = -200;
60        varsijousi.IgnoresCollisionResponse = true;       
61        Add(varsijousi);
62       
63       
64        kuormaauto = new PhysicsObject(200.0, 100.0);
65        kuormaauto.X = -550.0;
66        kuormaauto.Y = -250.0; 
67        Add(kuormaauto);
68        pyssy = new LaserGun(20, 5);
69        varsijousi.Add(pyssy);
70        PathFollowerBrain tietaseuraavatAivot = new PathFollowerBrain();
71        kuormaauto.Brain = tietaseuraavatAivot;
72        List<Vector> polku = new List<Vector>();
73        polku.Add( new Vector(-800.0,-250.0));
74        polku.Add( new Vector(800.0,-250.0));
75        tietaseuraavatAivot.Path = polku;
76        tietaseuraavatAivot.Speed = 100;
77        kuormaauto.IgnoresCollisionResponse = true;
78        TileMap ruudut = TileMap.FromFile("kenttä");
79        ruudut['-'] = LuoPalikKaksi;
80        ruudut['='] = LuoPalikka;
81        varsijousi.Image = LoadImage
82       
83        ruudut.Insert(40.0, 40.0);
84        Level.Background.Image = LoadImage("Winter");
85        Level.Background.FitToLevel();
86
87
88
89
90    }
91    void Ohjaimet()
92    {
93        Keyboard.Listen(Key.Up, ButtonState.Down, LiikuEteen, "Liiku eteenpäin");
94        Keyboard.Listen(Key.Up, ButtonState.Released, Pysahdy, "Pysayta");
95        Keyboard.Listen(Key.Down, ButtonState.Pressed, LiikuTaakse, "Liiku taaksepäin");
96        Keyboard.Listen(Key.Down, ButtonState.Released, Pysahdy, "Pysayta");
97        Keyboard.Listen(Key.Left, ButtonState.Down, KaannyMyotapaivaan, "Käänny Oikealle");
98        Keyboard.Listen(Key.Left, ButtonState.Released, Pysahdy2, "Pysayta");
99        Keyboard.Listen(Key.Right, ButtonState.Down, KaannyVastapaivaan, "Käänny Vasemmalle");
100        Keyboard.Listen(Key.Right, ButtonState.Released, Pysahdy2, "Käänny Vasemmalle");
101        Keyboard.Listen(Key.Space, ButtonState.Down, pyssy.Use, "Käytä");
102    }
103       
104        void LiikuEteen()
105    {
106        Vector suunta = Vector.FromLengthAndAngle(1.0, varsijousi.Angle);
107        varsijousi.Velocity = suunta * 100;
108        if (varsijousi.Y >= Level.Top)
109        {
110            varsijousi.Velocity = Vector.Zero;
111            return;
112        }
113    }
114    void LiikuTaakse()
115    {
116        Vector suunta = Vector.FromLengthAndAngle(1.0, varsijousi.Angle);
117        varsijousi.Velocity = suunta * -100;
118
119    }
120
121    void Pysahdy()
122    {
123        varsijousi.Stop();
124    }
125    void KaannyMyotapaivaan()
126    {
127        varsijousi.Angle += Angle.Degrees(5);
128
129    }
130    void KaannyVastapaivaan()
131    {
132        varsijousi.Angle += Angle.Degrees(-5);
133    }
134
135
136    void Pysahdy2()
137    {       
138    }
139
140
141    PhysicsObject LuoPalikKaksi()
142    {
143        PhysicsObject palikka2 = PhysicsObject.CreateStaticObject(100.0, 50.0);
144        palikka2.Shape = Shapes.Rectangle;
145        palikka2.Color = Color.Brown;
146        return palikka2;
147    }
148    PhysicsObject LuoPalikka()
149    {
150        PhysicsObject palikka = PhysicsObject.CreateStaticObject(100.0, 50.0);
151        palikka.Shape = Shapes.Rectangle;
152        palikka.Color = Color.White;
153        return palikka;
154
155    }
156
157
158 
159}
160
161
Note: See TracBrowser for help on using the repository browser.