source: 2013/26/ChristianS/Testi/Testi/Testi/Testi.cs @ 4228

Revision 4228, 3.4 KB checked in by chsarre, 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 Testi : PhysicsGame
10{
11    const double nopeus = 300;
12    const double hyppyNopeus = 850;
13    const int RUUDUN_KOKO = 50;
14
15    PhysicsObject pelaaja;
16
17    Image pelaajanKuva = LoadImage("norsu");
18    Image tahtiKuva = LoadImage("tahti");
19
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21
22    public override void Begin()
23    {
24
25        LuoKentta();
26        LisaaNappaimet();
27
28        Camera.Follow(pelaaja);
29        Camera.ZoomToLevel();
30        //Camera.ZoomFactor = 1.2;
31        //Camera.StayInLevel = true;
32    }
33
34    void LuoKentta()
35    {
36        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta1");
37        ruudut.SetTileMethod(Color.Green, LuoPelaaja);
38        ruudut.SetTileMethod(Color.Black, LuoTaso);
39        ruudut.SetTileMethod(Color.Yellow, LuoTahti);
40        ruudut.Execute(50, 50);
41        Level.CreateBorders();
42        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
43    }
44
45    void LuoTaso(Vector paikka, double leveys, double korkeus)
46    {
47        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
48        taso.Position = paikka;
49        taso.CollisionIgnoreGroup = 1;
50        taso.Color = Color.Green;
51        Add(taso);
52    }
53
54    void LuoTahti(Vector paikka, double leveys, double korkeus)
55    {
56        PhysicsObject tahti = new PhysicsObject(25, 25);
57        //tahti.IgnoresCollisionResponse = true;
58        tahti.Position = paikka;
59        tahti.Image = tahtiKuva;
60        tahti.Tag = "tahti";
61        Add(tahti, 1);
62    }
63
64    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
65    {
66        pelaaja = new PhysicsObject(45, 45);
67        pelaaja.Position = paikka;
68        pelaaja.Image = pelaajanKuva;
69        pelaaja.Tag = "norsu";
70        AddCollisionHandler(pelaaja, "tahti", TormaaTahteen);
71        Add(pelaaja);
72    }
73
74    void LisaaNappaimet()
75    {
76        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
77        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
78        Vector nopeus = new Vector(100, 0);
79
80
81        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja, -nopeus);
82        Keyboard.Listen(Key.Left, ButtonState.Released, Liikuta, "Liikkuu vasemmalle", pelaaja, Vector.Zero);
83        Keyboard.Listen(Key.Up, ButtonState.Released, Liikuta, "Liikkuu eteen", pelaaja, Vector.Zero);
84        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja, nopeus);
85        Keyboard.Listen(Key.Right, ButtonState.Released, Liikuta, "Liikkuu oikealle", pelaaja, Vector.Zero);
86        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, "Liikkuu eteen", pelaaja, new Vector(0,100));
87        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, "Liikkuu taakse", pelaaja, new Vector(0, -100));
88        Keyboard.Listen(Key.Down, ButtonState.Released, Liikuta, "Liikkuu taakse", pelaaja, Vector.Zero);
89
90        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
91    }
92
93    void Liikuta(PhysicsObject hahmo, Vector nopeus)
94    {
95        hahmo.Velocity = nopeus;
96    }
97
98    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
99    {
100        maaliAani.Play();
101        MessageDisplay.Add("Keräsit tähden!");
102        tahti.Destroy();
103    }
104}
Note: See TracBrowser for help on using the repository browser.