source: 2015/26/FransM/Pixels/Pixels/Pixels/Pixels.cs @ 6270

Revision 6270, 5.8 KB checked in by frmaenpa, 5 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 Pixels : PhysicsGame
10{
11    Image taustakuva = LoadImage("Taustakuva");
12    Image tasoKuva = LoadImage("Maa");
13    Image maapalakuva = LoadImage("Maapala");
14    Image maaruohokuva = LoadImage("Maapalaruoholla");
15    Image kivikuva = LoadImage("Kivi");
16    Image nappikuva = LoadImage("NAPPI");
17    Image porakuva = LoadImage("Pora");
18    Image kivi2kuva = LoadImage("Kivi2");
19    Image seinakuva = LoadImage("seinä");
20    Image alinkuva = LoadImage("Alin");
21    Image ruohokuva = LoadImage("Maapalaruoholla");
22    Image alempikuva = LoadImage("Alempi"); 
23
24 
25    public override void Begin()
26    {
27        LuoKentta();
28     
29        SmoothTextures = false;
30       
31        //Inventory test = new Inventory();
32        //test.AddItem(new PhysicsObject(porakuva), porakuva);
33        //Add(test);
34
35        MediaPlayer.Play("CaveMusicX");
36        MediaPlayer.IsRepeating = true;
37
38        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
39    }
40
41    void LuoKentta()
42    {
43        Level.Background.Image = taustakuva;
44
45        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Maa");
46
47        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), LuoTaso);
48        ruudut.SetTileMethod(Color.FromHexCode("808080"), LuoTaso2);
49        ruudut.SetTileMethod(Color.FromHexCode("000000"), LuoTaso3);
50        ruudut.SetTileMethod(Color.FromHexCode("FFD800"), LuoTaso4);
51        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LuoTaso5);
52        ruudut.SetTileMethod(Color.FromHexCode("00FF21"), LuoTaso6);
53        ruudut.SetTileMethod(Color.FromHexCode("FF6A00"), LuoTaso7);
54       // ruudut.SetTileMethod(Color.FromHexCode("7F3300"), LuoTaso8);
55
56       
57        ruudut.Execute(60, 60);
58        Level.Background.FitToLevel();
59
60        IsMouseVisible = true;
61        Camera.StayInLevel = true;
62        Mouse.ListenMovement(0.0, delegate(AnalogState h) {
63            if (Mouse.PositionOnScreen.Y > Screen.Top - 100)
64            {
65                Camera.Move(new Vector(0, 10));
66            }
67            else if (Mouse.PositionOnScreen.Y < Screen.Bottom + 100)
68            {
69                Camera.Move(new Vector(0, -10));
70            }
71        }, "");
72        IsFullScreen = true;
73
74
75    }
76    void EsineValitsin(Vector paikka)
77    {
78        int arpa = RandomGen.NextInt(0, 100);
79        if (arpa <= 50)
80        {
81            EsineLuoja(paikka, "Pora");
82        }
83        else
84        {
85
86        }
87    }
88    void EsineLuoja(Vector paikka, String tag)
89    {
90        GameObject esine = new GameObject(LoadImage(tag));
91        esine.Position = paikka;
92        Add(esine, 1);
93    }
94
95    void LuoTaso(Vector paikka, double leveys, double korkeus)
96    {
97        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
98        taso.Position = paikka;
99        taso.Image = maapalakuva;
100        taso.CollisionIgnoreGroup = 1;
101        Add(taso);
102    }
103
104
105    void LuoTaso2(Vector paikka, double leveys, double korkeus)
106    {
107        PhysicsObject taso2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
108        taso2.Position = paikka;
109        taso2.Image = kivikuva;
110        taso2.CollisionIgnoreGroup = 1;
111        Add(taso2);
112        if (RandomGen.NextInt(0, 100) < 20)
113        {
114            EsineValitsin(paikka);
115        }
116    }
117
118    void LuoTaso3(Vector paikka, double leveys, double korkeus)
119    {
120        PhysicsObject taso3 = PhysicsObject.CreateStaticObject(leveys, korkeus);
121        taso3.Position = paikka;
122        taso3.Image = kivi2kuva;
123        taso3.CollisionIgnoreGroup = 1;
124        Add(taso3);
125    }
126
127    void LuoTaso4(Vector paikka, double leveys, double korkeus)
128    {
129        PhysicsObject taso4 = PhysicsObject.CreateStaticObject(leveys, korkeus);
130        taso4.Position = paikka;
131        taso4.Image = seinakuva;
132        taso4.CollisionIgnoreGroup = 1;
133        Add(taso4);
134    }
135
136    void LuoTaso5(Vector paikka, double leveys, double korkeus)
137    {
138        PhysicsObject taso5 = PhysicsObject.CreateStaticObject(leveys, korkeus);
139        taso5.Position = paikka;
140        taso5.Image = alinkuva;
141        taso5.CollisionIgnoreGroup = 1;
142        Add(taso5);
143    }
144
145    void LuoTaso6(Vector paikka, double leveys, double korkeus)
146
147    {
148        PhysicsObject taso6 = PhysicsObject.CreateStaticObject(leveys, korkeus);
149        taso6.Position = paikka;
150        taso6.Image = ruohokuva;
151        taso6.CollisionIgnoreGroup = 1;
152        Add(taso6);
153    }
154
155    void LuoTaso7(Vector paikka, double leveys, double korkeus)
156    {
157        PhysicsObject taso7 = PhysicsObject.CreateStaticObject(leveys, korkeus);
158        taso7.Position = paikka;
159        taso7.Image = alempikuva;
160        taso7.CollisionIgnoreGroup = 1;
161        Add(taso7);
162    }
163}
164
165
166/// <summary>
167/// Esinevalikko.
168/// </summary>
169class Inventory : Widget
170{
171    /// <summary>
172    /// Tapahtuma, kun esine on valittu.
173    /// </summary>
174    public event Action<PhysicsObject> ItemSelected;
175
176    /// <summary>
177    /// Luo uuden esinevalikon.
178    /// </summary>
179    public Inventory()
180        : base(new HorizontalLayout())
181    {
182    }
183
184    /// <summary>
185    /// Lisää esineen.
186    /// </summary>
187    /// <param name="item">Lisättävä esine.</param>
188    /// <param name="kuva">Esineen ikoni, joka näkyy valikossa.</param>
189    public void AddItem(PhysicsObject item, Image kuva)
190    {
191        PushButton icon = new PushButton(kuva);
192        Add(icon);
193        icon.Clicked += delegate() { SelectItem(item); };
194    }
195
196    void SelectItem(PhysicsObject item)
197    {
198        if (ItemSelected != null)
199        {
200            ItemSelected(item);
201        }
202    }
203}
Note: See TracBrowser for help on using the repository browser.