source: 2012/23/AkuK/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 2801

Revision 2801, 3.7 KB checked in by akkarhin, 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 FysiikkaPeli1 : PhysicsGame
10{
11    Image ihmisenkuva = LoadImage("suunnistaja");
12    Image tahti = LoadImage("fuel box");
13    PhysicsObject pelaaja;
14
15    public override void Begin()
16    {
17        LuoAikaLaskuri();
18       
19        // TODO: Kirjoita ohjelmakoodisi tähän
20        PhysicsObject puu = new PhysicsObject(100, 100);
21        puu.Color = Color.Green;
22        puu.Shape = Shape.Circle;
23        Add(puu);
24        Level.BackgroundColor = Color.DarkGreen;
25        TileMap ruudut = TileMap.FromLevelAsset("forest");
26        ruudut.SetTileMethod('=', LuoPalikka);
27        ruudut.SetTileMethod('l', LuoPelaaja);
28        ruudut.SetTileMethod('c', LuoTahti);
29       
30 ruudut.Execute(20, 20);
31 Keyboard.Listen(Key.Left, ButtonState.Down,
32    LiikutaPelaajaa, null, new Vector(-1000, 0));
33        Keyboard.Listen(Key.Right, ButtonState.Down,
34          LiikutaPelaajaa, null, new Vector(1000, 0));
35        Keyboard.Listen(Key.Up, ButtonState.Down,
36          LiikutaPelaajaa, null, new Vector(0, 1000));
37        Keyboard.Listen(Key.Down, ButtonState.Down,
38          LiikutaPelaajaa, null, new Vector(0, -1000));
39
40
41        PhysicsObject puu2 = new PhysicsObject(50, 50);
42        puu2.Color = Color.ForestGreen;
43
44        puu2.Shape = Shape.Circle;
45        Add(puu2);
46
47        Camera.Follow(pelaaja);
48        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
49        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
50        PhysicsObject suunnistaja = new PhysicsObject(100, 100);
51        suunnistaja.X = 100;
52        Add(suunnistaja);
53        suunnistaja.Image = ihmisenkuva;
54
55    }
56    void LuoPalikka(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
59        palikka.Position = paikka;
60        palikka.Shape = Shape.Rectangle;
61        palikka.Color = Color.Gray;
62        Add(palikka);
63    }
64
65    void LuoTahti(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject tahti = new PhysicsObject(5, 5);
68        tahti.Position = paikka;
69        tahti.Mass = 0.005;
70        tahti.Shape = Shape.Circle;
71        tahti.Restitution = 1.0;
72
73        AddCollisionHandler(tahti, Keraa);
74        Add(tahti, 1);
75    }
76    void Keraa(PhysicsObject tormaaja, PhysicsObject kohde)
77    {
78
79
80    }
81    DoubleMeter alaspainLaskuri;
82    Timer aikaLaskuri;
83
84    void LuoAikaLaskuri()
85    {
86        alaspainLaskuri = new DoubleMeter(300);
87
88        aikaLaskuri = new Timer();
89        aikaLaskuri.Interval = 0.1;
90        aikaLaskuri.Timeout += LaskeAlaspain;
91        aikaLaskuri.Start();
92
93        Label aikaNaytto = new Label();
94        aikaNaytto.TextColor = Color.White;
95        aikaNaytto.DecimalPlaces = 1;
96        aikaNaytto.BindTo(alaspainLaskuri);
97        Add(aikaNaytto);
98    }
99
100    void LaskeAlaspain()
101    {
102        alaspainLaskuri.Value -= 0.1;
103
104        if (alaspainLaskuri.Value <= 0)
105        {
106            MessageDisplay.Add("Aika loppui...");
107            aikaLaskuri.Stop();
108
109            // täydennä mitä tapahtuu, kun aika loppuu
110        }
111    }
112
113    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
114    {
115        pelaaja = new PhysicsObject(10, 10);
116        pelaaja.Position = paikka;
117        pelaaja.Mass = 10;
118
119        AddCollisionHandler(pelaaja, OsuiMaaliin);
120        Add(pelaaja);
121    }
122    void OsuiMaaliin(PhysicsObject tormaaja, PhysicsObject kohde)
123    {
124    }
125void LiikutaPelaajaa(Vector vektori)
126{
127  pelaaja.Push(vektori);
128}
129}
Note: See TracBrowser for help on using the repository browser.