source: 2012/27/JoukoS/Data Tunnel/Data Tunnel/Data Tunnel/Data_Tunnel.cs @ 3630

Revision 3630, 5.8 KB checked in by jomajusi, 7 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 Data_Tunnel : PhysicsGame
10{
11    Vector liikuVasemmalle = new Vector(-300, 0);
12    Vector liikuOikealle = new Vector(300, 0);
13    Image TEO = LoadImage("Threadeateroikealle");
14    Image TEV = LoadImage("Threadeatervasemmalle");
15    Image ThreadO = LoadImage("Threadoikealle");
16    Image ThreadV = LoadImage("Threadvasemmalle");
17    Image BitP = LoadImage("Bittiportaali");
18    PhysicsObject VihuPallovasen;
19    PhysicsObject VihuPalloOikea;
20    PhysicsObject hyvaPallo;
21    PhysicsObject vasenReuna;
22    PhysicsObject oikeaReuna;
23   
24   
25    public override void Begin()
26    {   
27        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
28        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
29        LuoKentta();
30        LuoPallo(100, 235, 100, 235, 100, 300, 100);
31        LuoPallo2(150, 95, 150, 95, 150, 160, 125);
32        LuoPallo2(-180, 95, -180, 95, -180, 165, 150);
33        LuoPallo(-150, -45, -150, -45, -150, 25, 175);
34        LuoPallo(300, -80, 300, -80, 385, -80, 180);
35        LuoPallo2(150, -180, 150, -180, 150, -120, 200);
36        LuoPallo2(100, -180, 100, -180, 100, -120, 225);
37        LuoPortaali(350, -280);
38        LuoThread();
39        Nappaimet();LuoAikaLaskuri();
40    }void LuoKentta()
41    {
42        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta");
43        ruudut.SetTileMethod(Color.Black, LuoPalikka);
44        ruudut.Execute(20, 20);
45        vasenReuna = Level.CreateLeftBorder();
46        vasenReuna.Restitution = 0.0;
47        vasenReuna.KineticFriction = 0.0;
48        vasenReuna.IsVisible = false;
49        Add(vasenReuna);
50        oikeaReuna = Level.CreateRightBorder();
51        oikeaReuna.Restitution = 1.0;
52        oikeaReuna.KineticFriction = 1.0;
53        oikeaReuna.IsVisible = false;
54        Add(oikeaReuna);
55        Level.BackgroundColor = Color.White;
56        Gravity = new Vector(0, -1000);
57        MediaPlayer.Play("Valzuplosion 3000 - The Girl on the Dancefloor");
58        Camera.ZoomToLevel();
59    }
60
61    void LuoPalikka(Vector paikka, double leveys, double korkeus) 
62    { 
63        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
64        palikka.Position = paikka;
65        palikka.Shape = Shape.Rectangle;
66        palikka.Color = Color.Black;
67        palikka.Restitution = (0.0);
68        Add(palikka);
69    }
70    void LuoThread()
71    {
72        hyvaPallo = new PhysicsObject(40, 40, Shape.Circle);
73        hyvaPallo.Image = ThreadO;
74        hyvaPallo.Restitution = (0.0);
75        hyvaPallo.X = -300;
76        hyvaPallo.Y = 240;
77        AddCollisionHandler(hyvaPallo, "VihuPallo", delegate(PhysicsObject pelaaja, PhysicsObject kohde)
78            {pelaaja.Position = new Vector(-300, 240); });
79        hyvaPallo.CanRotate = false;
80        Add(hyvaPallo);
81    }
82    void LuoPallo(double x, double y, double V1X, double V1Y, double V2X, double V2Y,double speed)
83    {
84        PhysicsObject VihuPallovasen = new PhysicsObject(50,50, Shape.Circle);
85        VihuPallovasen.Image = TEV;
86        VihuPallovasen.X = x;
87        VihuPallovasen.Y = y;
88        VihuPallovasen.Restitution = (0.0);
89        VihuPallovasen.Brain = LuoAivot(V1X, V1Y, V2X, V2Y, speed);
90        VihuPallovasen.Tag = "VihuPallo";
91        Add(VihuPallovasen);
92    }
93
94    void LuoPallo2(double x, double y, double O1X, double O1Y, double O2X, double O2Y, double speed)
95    {
96        PhysicsObject VihuPalloOikea = new PhysicsObject(50, 50, Shape.Circle);
97        VihuPalloOikea.Image = TEO;
98        VihuPalloOikea.X = x;
99        VihuPalloOikea.Y = y;
100        VihuPalloOikea.Restitution = (0.0);
101        VihuPalloOikea.Brain = LuoAivot(O1X, O1Y, O2X, O2Y, speed);
102        VihuPalloOikea.Tag = "VihuPallo";
103        Add(VihuPalloOikea);
104    }
105    void LuoPortaali(double x, double y)
106    {
107        PhysicsObject Portaali = PhysicsObject.CreateStaticObject(75, 75);
108        Portaali.Image = BitP;
109        Portaali.X = x;
110        Portaali.Y = y;
111        Add(Portaali);
112    }
113    void Nappaimet()
114    {
115        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Pelaaja: Liikuta palloa vasemmalle", hyvaPallo, liikuVasemmalle);
116        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, hyvaPallo, Vector.Zero);
117        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Pelaaja: Liikuta palloa oikealle", hyvaPallo, liikuOikealle);
118        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, hyvaPallo, Vector.Zero);
119    }
120    void AsetaNopeus(PhysicsObject hyvaPallo, Vector nopeus)
121    {
122        hyvaPallo.Velocity = nopeus;
123    }
124    void LuoTaso(Vector paikka)
125    {
126        PhysicsObject taso = PhysicsObject.CreateStaticObject(50, 50);
127        taso.Position = paikka;
128        taso.Color = Color.Black;
129        Add(taso);
130    }
131    void LuoAikaLaskuri()
132    {
133        Timer aikaLaskuri = new Timer();
134        aikaLaskuri.Start();
135        Label aikaNaytto = new Label();
136        aikaNaytto.TextColor = Color.Black;
137        aikaNaytto.DecimalPlaces = 1;
138        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
139        aikaNaytto.Position = new Vector(610, 500);
140        Add(aikaNaytto);
141    }
142    PathFollowerBrain LuoAivot(double vektori1X, double vektori1Y, double vektori2X, double vektori2Y, double speed)
143    {
144        PathFollowerBrain polkuAivot = new PathFollowerBrain();
145        List<Vector> polku = new List<Vector>();
146        polku.Add(new Vector(vektori1X, vektori1Y));
147        polku.Add(new Vector(vektori2X, vektori2Y));
148        polkuAivot.Path = polku;
149        polkuAivot.Loop = true;
150        polkuAivot.Speed = speed;
151        return polkuAivot;
152    }
153}
Note: See TracBrowser for help on using the repository browser.