source: 2011/24/VilmaK/Magneetti/Magneetti/Magneetti/Peli.cs @ 2021

Revision 2021, 4.1 KB checked in by vievkang, 8 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    PhysicsObject Magneetti;
12    PhysicsObject JattiMagneetti;
13    Image hahmo = LoadImage("örkki");
14    GameObject Risti;
15    Image liikuttaja = LoadImage("risti");
16
17
18
19    public override void Begin()
20    {
21        LuoRisti();
22        AsetaOhjaimet();
23        LuoKentta();
24        Level.CreateBorders();
25        // TODO: Kirjoita ohjelmakoodisi tähän
26    }
27
28
29
30    void LuoKentta()
31    {
32        TileMap ruudut = TileMap.FromFile("kentta.txt");
33        ruudut.SetTileMethod('x', LuoPalikka);
34        ruudut.SetTileMethod('p', LuoPuu);
35        ruudut.SetTileMethod('o', LuoMaali);
36        ruudut.SetTileMethod('j', LuoJarvi);
37        ruudut.SetTileMethod('k', LuoKukka);
38        ruudut.SetTileMethod('$', LuoMagneetti);
39        ruudut.SetTileMethod('r', LuoRanta);
40        ruudut.SetTileMethod('M', LuoJattiMagneetti);
41        ruudut.Execute(50, 50);
42    }
43
44    void LuoPalikka(Vector paikka, double leveys, double korkeus)
45    {
46        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
47        palikka.Position = paikka;
48
49        palikka.Color = Color.Orange;
50        Add(palikka);
51
52    }
53
54    void LuoPuu(Vector paikka, double leveys, double korkeus)
55    {
56        GameObject puu =  new GameObject(leveys, korkeus);
57        puu.Image = LoadImage("puu");
58        puu.Position = paikka;
59
60        Add(puu);
61    }
62
63    void LuoMaali( Vector paikka, double leveys, double korkeus)
64    {
65        GameObject maali = new GameObject(leveys, korkeus);
66        maali.Image = LoadImage("maali");
67        maali.Position = paikka;
68        Add(maali);
69
70    }
71
72    void LuoJarvi(Vector paikka, double leveys, double korkeus)
73    {
74        GameObject jarvi = new GameObject(leveys*8, korkeus);
75        jarvi.Image = LoadImage ("järvi");
76        jarvi.Position = new Vector(paikka.X + jarvi.Width /2 - leveys/2, paikka.Y);
77        Add (jarvi);
78    }
79
80    void LuoKukka( Vector paikka, double leveys, double korkeus)
81    {
82        GameObject kukka = new GameObject (leveys, korkeus);
83        kukka.Image = LoadImage("kukka");
84        kukka.Position = paikka;
85        Add(kukka);
86    }
87
88    void LuoMagneetti (Vector paikka, double leveys, double korkeus)
89    {
90        Magneetti = new PhysicsObject(25, 25);
91        Magneetti.Shape = Shape.Circle;
92        Magneetti.Position = paikka;
93        Magneetti.Image = hahmo;
94        Magneetti.CanRotate = false;
95        Magneetti.Restitution = 0.25;
96        Add(Magneetti);
97
98    }
99
100    void LuoRanta( Vector paikka, double leveys, double korkeus)
101    {
102        GameObject Ranta = new GameObject(3*leveys, korkeus);
103        Ranta.Image = LoadImage("beach");
104        Ranta.Position = new Vector(paikka.X + Ranta.Width /1.5 - leveys/2, paikka.Y);
105        Add(Ranta);
106
107    }
108
109
110    void LuoJattiMagneetti(Vector paikka, double leveys, double korkeus)
111    {
112      JattiMagneetti = PhysicsObject.CreateStaticObject (50, 50);     
113      JattiMagneetti.Image = LoadImage ( "jättimagneetti");
114      JattiMagneetti.Position = paikka;
115
116      Add (JattiMagneetti);
117     
118    }
119
120    void LuoRisti()
121    {
122        Risti = new GameObject(200, 200);
123        Risti.Shape = Shape.Circle;
124        Risti.Image = liikuttaja;
125        Add(Risti, 1);
126
127    }
128    void AsetaOhjaimet()
129    {
130        Mouse.IsCursorVisible = false;
131        Mouse.ListenMovement(0.1, KuunteleLiiketta, null);
132
133    }
134    void KuunteleLiiketta(AnalogState hiirentila)
135    {
136        Risti.X = Mouse.PositionOnWorld.X;
137        Risti.Y = Mouse.PositionOnWorld.Y;
138    }
139
140    protected override void Update(Time time)
141    {
142        Vector v = Magneetti.Position - Risti.Position;
143        // MessageDisplay.Add(v.X + " " + v.Y);
144        Magneetti.Push(1500/v.Magnitude * v.Normalize());
145
146        Vector z = JattiMagneetti.Position - Magneetti.Position;
147        Magneetti.Push (1500 / z.Magnitude * z.Normalize());
148
149        base.Update(time);
150    }
151}
Note: See TracBrowser for help on using the repository browser.