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

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