source: 2012/30/AnttiS/EksyksissäAvaruudessa/EksyksissäAvaruudessa/EksyksissäAvaruudessa/EksyksissäAvaruudessa.cs @ 3755

Revision 3755, 4.7 KB checked in by juiitamm, 8 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
9public class EksyksissäAvaruudessa : PhysicsGame
10{
11    int kenttaNro = 1;
12    PhysicsObject Alus;
13
14    public override void Begin()
15    {
16        SeuraavaKentta();
17    }
18    void SeuraavaKentta()
19    {
20        ClearAll();
21
22        LuoAlus();
23        AsetaOhjaimet();
24        LuoTausta();
25
26        if (kenttaNro == 1) SijoitaOliot1();
27        else if (kenttaNro == 2) SijoitaOliot2();
28        else Exit();
29
30        LuoPistelaskuri();
31        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
32    }
33
34    void LuoAlus()
35    {
36        Alus = new PhysicsObject(130, 40);
37        Alus.LinearDamping = 0.5;
38        Alus.CanRotate = false;
39        Alus.Image = LoadImage("avaruusalus");
40        Alus.X = -400;
41        Alus.Y = 0;
42        Alus.Restitution = 1.0;
43        Add(Alus);
44
45        AddCollisionHandler(Alus, "UFO", Kuole);
46    }
47    PhysicsObject LuoMaali()
48    {
49        PhysicsObject Maali = new PhysicsObject(169, 94);
50        Maali.Image = LoadImage("MAALI");
51        Add(Maali);
52        AddCollisionHandler( Alus, Maali, VaihdaKenttaa );
53        return Maali;
54    }
55    void AsetaOhjaimet()
56    {
57
58        Keyboard.Listen(Key.Left, ButtonState.Down, KaannaAlusta, null, Angle.FromDegrees(1));
59        Keyboard.Listen(Key.Right, ButtonState.Down, KaannaAlusta, null, Angle.FromDegrees(-1));
60        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaAlusta, null, 1000.0);
61        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaAlusta, null, -1000.0);
62
63    }
64    void LiikutaAlusta(double nopeus)
65    {
66        Vector vektori = Vector.FromLengthAndAngle(nopeus, Alus.Angle);
67        Alus.Push(vektori);
68    }
69    void LuoTausta()
70    {
71        Level.CreateBorders(1.0, true);
72        Camera.ZoomToLevel();
73        Image taustaKuva = LoadImage("tausta");
74        Level.Background.Image = taustaKuva;
75        Level.Background.FitToLevel();
76    }
77    void LuoPlaneetta1(double x, double y)
78    {
79        PhysicsObject planeetta = PhysicsObject.CreateStaticObject(90, 86);
80        Image planeetta1 = LoadImage("planeetta1");
81        planeetta.Image = planeetta1;
82        planeetta.X = x;
83        planeetta.Y = y;
84        planeetta.Restitution = 1.0;
85        Add(planeetta);
86    }
87    void KaannaAlusta(Angle kulma)
88    {
89        Alus.Angle += kulma;
90    }
91    void SijoitaOliot1()
92    {
93        LuoUfo(-200, -300, new Vector(-150.0, -150.0));
94        LuoUfo(200, -300, new Vector(150.0, 150.0));
95        LuoPlaneetta1(-200, 50);
96        LuoPlaneetta1(-300, 200);
97        LuoPlaneetta1(-40, 120);
98        LuoPlaneetta1(200, 50);
99        LuoPlaneetta1(90, -200);
100
101        PhysicsObject maali = LuoMaali();
102        maali.X = 200;
103        maali.Y = 200;
104    }
105    void SijoitaOliot2()
106    {
107        LuoUfo(-200, -300, new Vector(-150.0, -150.0));
108        LuoUfo(200, -300, new Vector(150.0, 150.0));
109        LuoPlaneetta1(-200, 50);
110        LuoPlaneetta1(-300, 200);
111        LuoPlaneetta1(-40, 120);
112        LuoPlaneetta1(200, 50);
113        LuoPlaneetta1(90, -200);
114
115        PhysicsObject maali = LuoMaali();
116        maali.X = 200;
117        maali.Y = 200;
118    }
119    void LuoUfo(double x, double y, Vector suunta)
120    {
121        PhysicsObject Ufo = new PhysicsObject(123, 71);
122        Image ufo = LoadImage("ufo");
123        Ufo.CanRotate = false;
124        Ufo.Image = ufo;
125        Ufo.X = x;
126        Ufo.Y = y;
127        Ufo.Tag = "UFO";
128        Ufo.Restitution = 1.0;
129        Vector impulssi = suunta;
130        Ufo.Hit(impulssi);
131        Add(Ufo);
132
133    }
134    IntMeter pisteLaskuri;
135
136    void LuoPistelaskuri()
137    {
138        pisteLaskuri = new IntMeter(3);
139        pisteLaskuri.LowerLimit += new Action(pisteLaskuri_LowerLimit);
140
141        Label pisteNaytto = new Label();
142        pisteNaytto.X = Screen.Right - 100;
143        pisteNaytto.Y = Screen.Top - 100;
144        pisteNaytto.TextColor = Color.Blue;
145        pisteNaytto.Color = Color.Red;
146        pisteNaytto.BindTo(pisteLaskuri);
147        Add(pisteNaytto);
148
149        pisteNaytto.Title = "Elämät";
150    }
151
152    void pisteLaskuri_LowerLimit()
153    {
154        Widget kuva = new Widget(LoadImage("game over"));
155        kuva.Width = Screen.Width;
156        kuva.Height = Screen.Height;
157        Add(kuva);
158        Timer.SingleShot(5.0, Begin);
159    }
160    void PelaajaTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
161    {
162        MessageDisplay.Add("Pelaaja törmäsi!");
163    }
164
165    void Kuole(PhysicsObject tormaaja, PhysicsObject kohde)
166    {
167        pisteLaskuri.Value -= 1;
168    }
169
170
171}
172
Note: See TracBrowser for help on using the repository browser.