source: 2014/24/IlariR/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 4936

Revision 4936, 3.1 KB checked in by ilkarist, 6 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 olionKuva = LoadImage("akukuva");
12    PhysicsObject hirviniemi;
13   
14    Image tahtaimenkuva = LoadImage("tahtain");
15    public override void Begin()
16    {
17        SmoothTextures = false;
18        Image taustaKuva = LoadImage("planeettataustakuva");
19        Level.Background.Image = taustaKuva;
20        Camera.ZoomToLevel();
21        LuoKentta();
22        Level.Background.Color = Color.Black;
23        Mouse.IsCursorVisible = true;
24        Camera.Follow(hirviniemi);
25        Camera.Zoom(2.9);
26        GameObject tahtain= new GameObject(20, 20);
27        tahtain.Image = tahtaimenkuva;
28        Add(tahtain);
29        Timer tahtaimenLiikutus = new Timer();
30        tahtaimenLiikutus.Interval = 0.01;
31        tahtaimenLiikutus.Timeout += delegate { tahtain.Position = Mouse.PositionOnWorld; };
32        tahtaimenLiikutus.Start();
33
34        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
35        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(-500, 0));
36        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(500, 0));
37        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(0, 500));
38        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, null, hirviniemi, new Vector(0, -500));
39        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
40
41
42    }
43
44
45    void AsetaNopeus(PhysicsObject hirviniemi, Vector nopeus)
46    {
47        hirviniemi.Velocity = nopeus;
48    }
49
50    void LiikutaPelaajaa(PhysicsObject hirviniemi, Vector vektori)
51    {
52        hirviniemi.Push(vektori);
53    }
54
55    void LuoKentta()
56    {
57        //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä.
58        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta");
59
60        //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa.
61        ruudut.SetTileMethod(Color.FromHexCode("00FF80"), LuoPelaaja);
62        ruudut.SetTileMethod(Color.Black, LuoTaso);
63        //ruudut.SetTileMethod(Color.Yellow, LuoTahti);
64
65        //3. Execute luo kentän
66        //   Parametreina leveys ja korkeus
67        ruudut.Execute(20, 20);
68    }
69
70    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
71    {
72        hirviniemi = new PhysicsObject(leveys, korkeus);
73        hirviniemi.Position = paikka;
74        //AddCollisionHandler(hirviniemi, "tahti", TormaaTahteen);
75
76        hirviniemi.Image = olionKuva;
77        hirviniemi.LinearDamping = 0.90;
78
79        Add(hirviniemi);
80    }
81
82    void LuoTaso(Vector paikka, double leveys, double korkeus)
83    {
84        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
85        taso.Position = paikka;
86        //taso.Image = groundImage;
87        taso.CollisionIgnoreGroup = 1;
88        taso.Color = Color.Transparent;
89        Add(taso);
90    }
91}
Note: See TracBrowser for help on using the repository browser.