source: 2011/26/EliasH/Sokoban/Sokoban/Sokoban/Peli.cs @ 2384

Revision 2384, 3.6 KB checked in by eljajohy, 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 Peli : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15   PhysicsObject pelaaja1;
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
26        luoKentta();
27        lisaaNappaimet();
28
29        Camera.Follow(pelaaja1);
30        Camera.ZoomFactor = 1.2;
31        Camera.StayInLevel = true;
32    }
33
34    void luoKentta()
35    {
36        TileMap kentta = TileMap.FromFile("kentta1.txt");
37        kentta['#'] = lisaaTaso;
38        kentta['X'] = lisaaLaatikko;
39       // kentta['*'] = lisaaTahti;
40        kentta['H'] = lisaaPelaaja;
41        kentta.Insert(RUUDUN_KOKO, RUUDUN_KOKO);
42        Level.CreateBorders();
43        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
44    }
45
46    PhysicsObject lisaaTaso()
47    {
48        PhysicsObject taso = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
49        taso.Color = Color.Green;
50        return taso;
51    }
52
53    PhysicsObject lisaaTahti()
54    {
55        PhysicsObject tahti = PhysicsObject.CreateStaticObject(RUUDUN_KOKO, RUUDUN_KOKO);
56        tahti.Image = tahtiKuva;
57        //tahti.Tag = "tahti";
58        return tahti;
59    }
60
61    PhysicsObject lisaaPelaaja()
62    {
63        pelaaja1 = new PhysicsObject (30, 30);
64        pelaaja1.Mass = 4.0;
65        pelaaja1.Image = pelaajanKuva;
66        AddCollisionHandler(pelaaja1, osuTahteen);
67        pelaaja1.LinearDamping = 0.99;
68        pelaaja1.CanRotate = false;
69        pelaaja1.Restitution = 0.0;
70        return pelaaja1;
71    }
72
73    void lisaaNappaimet()
74    {
75        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
76        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
77
78          Keyboard.Listen(Key.Left, ButtonState.Down,
79          LiikutaPelaajaa, null, new Vector(-100, 0));
80          Keyboard.Listen(Key.Left, ButtonState.Released,
81          LiikutaPelaajaa, null, new Vector(0, 0));
82
83          Keyboard.Listen(Key.Right, ButtonState.Down,
84          LiikutaPelaajaa, null, new Vector(100, 0));
85          Keyboard.Listen(Key. Right, ButtonState.Released,
86          LiikutaPelaajaa, null, new Vector(0,0));
87          Keyboard.Listen(Key.Up, ButtonState.Down,
88          LiikutaPelaajaa, null, new Vector(0, 100));
89          Keyboard.Listen(Key.Up, ButtonState.Released,
90          LiikutaPelaajaa, null, new Vector(0, 0));
91          Keyboard.Listen(Key.Down, ButtonState.Down,
92          LiikutaPelaajaa, null, new Vector (0, -100));
93          Keyboard.Listen(Key.Down, ButtonState. Released,
94          LiikutaPelaajaa, null, new Vector(0, 0));
95
96       
97    }
98
99    void LiikutaPelaajaa(Vector vectori)
100    {
101       // pelaaja1.Push(vectori);
102        pelaaja1.Velocity = vectori;
103   }
104    void osuTahteen(PhysicsObject hahmo, PhysicsObject kohde)
105   {
106       if (kohde.Tag.ToString() == "tahti")
107     {
108            maaliAani.Play();
109            MessageDisplay.Add("Keräsit tähden!");
110            kohde.Destroy();
111        }
112           
113
114}
115        PhysicsObject lisaaLaatikko()
116    {
117        PhysicsObject Laatikko = new PhysicsObject(RUUDUN_KOKO, RUUDUN_KOKO);
118        Laatikko.CanRotate = false;
119        Laatikko.Restitution = 0.0;
120        Laatikko.LinearDamping = 0.5;
121        Laatikko.Mass = 45;
122        return Laatikko;
123    }
124}
125
Note: See TracBrowser for help on using the repository browser.