source: 2017/30/MainiI/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 9164

Revision 9164, 4.4 KB checked in by npo17_55, 4 years ago (diff)

Herkut lisätty... Punaiset satuttaa... 3 osumasta kuolee mutta äänitehosteet ja polut puuttuu.

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 kenttaKuva = LoadImage("Kentta");
12    Image Pahankuva = LoadImage("Pahis");
13    Pelaaja OlioH;
14    SoundEffect NamAani = LoadSoundEffect("BOING1");
15
16    public override void Begin()
17    {
18        Luokenttä();
19        LuoOhjaimet();
20
21        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
22        Camera.ZoomToLevel(-1000);
23
24    }
25    void Luokenttä()
26    {
27        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("Kentta");
28
29        ruudut.SetTileMethod(Color.Gold, LuoOlioH);
30        ruudut.SetTileMethod(Color.Black, LuoTaso);
31        ruudut.SetTileMethod(Color.Red, LuoOlioP);
32        ruudut.SetTileMethod(Color.Rose, LuoHerkut);
33
34        ruudut.Execute(50, 50);
35
36        Level.Background.Color = Color.White;
37
38        Label pisteNaytto = new Label();
39        pisteNaytto.X = Screen.Left + 100;
40        pisteNaytto.Y = Screen.Top - 100;
41        pisteNaytto.TextColor = Color.Black;
42        pisteNaytto.Color = Color.White;
43
44        pisteNaytto.BindTo(OlioH.ElamaLaskuri);
45        Add(pisteNaytto);
46    }
47    void LuoOlioH(Vector paikka, double leveys, double korkeus)
48    {
49        OlioH = new Pelaaja(leveys, korkeus);
50        OlioH.Position = paikka;
51        AddCollisionHandler(OlioH, "Pahis", TormaaVihuun); 
52        Add(OlioH);
53        OlioH.Color = Color.Gold;
54        OlioH.Shape = Shape.Circle;
55
56        AddCollisionHandler(OlioH, "Herkku", OlioSyo);
57    }
58    void TormaaVihuun(PhysicsObject Tormaaja,PhysicsObject KukaTormaa)
59    {
60        Pelaaja P = (Pelaaja)Tormaaja;
61        P.ElamaLaskuri.AddValue(-1);
62    }
63    void LuoTaso(Vector paikka, double leveys, double korkeus)
64    {
65        PhysicsObject seina = PhysicsObject.CreateStaticObject(leveys, korkeus);
66        seina.Position = paikka;
67        seina.Color = Color.Black;
68        seina.CollisionIgnoreGroup = 1;
69        Add(seina);
70    }
71    void LuoHerkut(Vector paikka, double leveys, double korkeus)
72    {
73        PhysicsObject Herkku = new PhysicsObject(20.0, 20.0);
74        Add(Herkku);
75        Herkku.Shape = Shape.Circle;
76        Herkku.Color = Color.LimeGreen;
77        Herkku.Position = paikka;
78        Herkku.Tag = "Herkku";   
79    }
80    void OlioSyo(PhysicsObject tormaaja, PhysicsObject kohde)
81    {
82        //NamAani.Play();
83        kohde.Destroy();
84    }
85    void LuoOlioP(Vector paikka, double leveys, double korkeus)
86    {
87        PhysicsObject OlioP = new PhysicsObject(leveys, korkeus);
88        OlioP.IgnoresCollisionResponse = true;
89        OlioP.Position = paikka;
90        OlioP.Tag = "Pahis";
91        Add(OlioP, 1);
92        OlioP.Color = Color.Red;
93        OlioP.Shape = Shape.Circle;
94
95        PathFollowerBrain polkuAivot = new PathFollowerBrain(200);
96
97        OlioP.Brain = polkuAivot;
98
99        polkuAivot.Active = true;
100        polkuAivot.TurnWhileMoving = true;
101        polkuAivot.Speed = 100;
102
103        List<Vector> polku = new List<Vector>();
104
105        polku.Add(new Vector(100.0, 0.0));
106        polku.Add(new Vector(0.0, 100.0));
107        polku.Add(new Vector(100.0,0.0 ));
108        polku.Add(new Vector(-200.0,0.0 ));
109        polku.Add(new Vector(-100.0, 0.0));
110
111        polkuAivot.Path = polku;
112        polkuAivot.Loop = true;
113
114    }
115    void LuoOhjaimet()
116    {
117        Keyboard.Listen(Key.Left, ButtonState.Down,
118        LiikutaPelaajaa, null, new Vector(-29000, 0));
119        Keyboard.Listen(Key.Right, ButtonState.Down,
120        LiikutaPelaajaa, null, new Vector(29000, 0));
121        Keyboard.Listen(Key.Up, ButtonState.Down,
122        LiikutaPelaajaa, null, new Vector(0, 2000));
123        Keyboard.Listen(Key.Down, ButtonState.Down,
124        LiikutaPelaajaa, null, new Vector(0, -2000));
125
126    }
127    void LiikutaPelaajaa(Vector vektori)
128    {
129        OlioH.Push(vektori);
130    }
131
132}
133    class Pelaaja : PlatformCharacter
134    {
135
136    public int Elamat { get; set; }
137
138    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3);
139    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
140
141    public Pelaaja(double leveys, double korkeus)
142            : base(leveys, korkeus)
143        {
144            elamaLaskuri.LowerLimit += delegate
145            {
146                this.Destroy(); };
147        }
148    }
Note: See TracBrowser for help on using the repository browser.