source: 2017/koodauskerho/nikke/PalloPeli/PalloPeli/PalloPeli/PalloPeli.cs @ 9473

Revision 9473, 3.2 KB checked in by mianhayr, 3 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 PalloPeli : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    private double liikkumisnopeus = 300;
13    Image olionKuva = LoadImage("pikachu");
14    Image timantti = LoadImage("Smaragdii");
15    List<Vector> paikat = new List<Vector>();
16    public override void Begin()
17    {
18        // TODO: Kirjoita ohjelmakoodisi tähän
19
20        TileMap Ruudut = TileMap.FromLevelAsset("level1");
21        Ruudut.SetTileMethod('p', LuoPelaaja);
22        Ruudut.SetTileMethod('#', LuoPalikka);
23        Ruudut.SetTileMethod('.', LuoTimantti);
24        Ruudut.Execute(30,30);
25        Timer.SingleShot(1, LuoOikeaTimantti);
26       
27        Camera.Follow(pelaaja);
28
29        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, null, pelaaja, new Vector(-liikkumisnopeus, 0));
30        Keyboard.Listen(Key.Left, ButtonState.Released, Liikuta, null, pelaaja, Vector.Zero);
31        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, null, pelaaja, new Vector(liikkumisnopeus, 0));
32        Keyboard.Listen(Key.Right, ButtonState.Released, Liikuta, null, pelaaja, Vector.Zero);
33        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, null, pelaaja, new Vector(0, -liikkumisnopeus));
34        Keyboard.Listen(Key.Down, ButtonState.Released, Liikuta, null, pelaaja, Vector.Zero);
35        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, null, pelaaja, new Vector(0, liikkumisnopeus));
36        Keyboard.Listen(Key.Up, ButtonState.Released, Liikuta, null, pelaaja, Vector.Zero);
37
38        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
39        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
40    }
41    void LuoTimantti(Vector paikka, double korkeus, double leveys)
42    {
43        paikat.Add(paikka);
44    }
45
46    void LuoOikeaTimantti()
47    {
48        PhysicsObject Timantti = new PhysicsObject(30, 30);
49        Timantti.Shape = Shape.Rectangle;
50        Timantti.Position = paikat[RandomGen.NextInt(0, paikat.Count)];
51        Timantti.Color = Color.Violet;
52        Timantti.Tag = "timantti";
53        Add(Timantti, 3);
54        //List<GameObject> timantit = GetObjectsWithTag("timantti");
55        //int i = RandomGen.NextInt(0, timantit.Count);
56        //timantit[i].IsVisible = true;
57        Timantti.Image = timantti;
58
59    }
60
61    void LuoPalikka(Vector paikka,double korkeus,double leveys)
62    {
63        PhysicsObject palikka = PhysicsObject.CreateStaticObject(korkeus, leveys);
64        palikka.Position = paikka;
65        palikka.Color = Color.Cyan;
66        Add(palikka);
67   
68    }
69    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
70    {
71        pelaaja = new PlatformCharacter(25, 25);
72        pelaaja.Image = olionKuva;
73        pelaaja.Position = paikka;
74        AddCollisionHandler(pelaaja, "timantti", Tormaatimanttiin);
75        Add(pelaaja);
76       
77    }
78
79    private void Tormaatimanttiin(PhysicsObject collidingObject, PhysicsObject otherObject)
80    {
81        otherObject.Destroy();
82        LuoOikeaTimantti();
83    }
84
85    void Liikuta(PhysicsObject pelaaja, Vector suunta)
86    {
87        pelaaja.Velocity = suunta;
88    }
89}
Note: See TracBrowser for help on using the repository browser.