source: 2015/24/JouniP/JouninHienoFysiikkapeli/JouninHienoFysiikkapeli/JouninHienoFysiikkapeli/JouninHienoFysiikkapeli.cs @ 5975

Revision 5975, 2.4 KB checked in by jotapoti, 4 years ago (diff)

Aliohjelmaluennon ja törmäystarkistusluennon koodit lisätty

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class JouninHienoFysiikkapeli : PhysicsGame
10{
11    public override void Begin()
12    {
13        IsFullScreen = false;
14        SetWindowSize(800, 600);
15
16        Level.CreateBorders();
17        PhysicsObject ympyra = LuoOlio(140.0, 76.0, Color.Red, Shape.Circle);
18        ympyra.Tag = "hyvis";
19
20        Vector impulssi = new Vector(100, 0);
21        ympyra.Hit(impulssi);
22
23        LuoOlio(290.0, 76.0, Color.Black, Shape.Rectangle);
24
25        LuoOlio(0.0, 0.0, Color.Black, Shape.Diamond);
26        // luodaan pallo:
27        //PhysicsObject pallo2 = new PhysicsObject(50, 50);
28        //pallo2.Shape = Shape.Circle;
29        //pallo2.Position = new Vector(140, 76);
30        //pallo2.Color = Color.White;
31        //Add(pallo2);
32
33        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
34        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
35        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
36        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Liiku ylös", ympyra, new Vector(0, 10));
37        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Liiku alas", ympyra, new Vector(0, -10));
38        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Liiku vasemmalle", ympyra, new Vector(-10, 0));
39        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liiku oikealle", ympyra, new Vector(10, 0));
40
41        AddCollisionHandler(ympyra, "pahis", TeeRajahdys);
42
43    }
44   
45    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector voima)
46    {
47       pelaaja.Hit(voima);
48    }
49
50    void TeeRajahdys(PhysicsObject tormaaja, PhysicsObject kohde)
51    {
52       
53        Explosion rajahdys = new Explosion(500);
54        rajahdys.Position = kohde.Position;
55        kohde.Destroy();
56        Add(rajahdys);
57    }
58
59    PhysicsObject LuoOlio(double x, double y, Color vari, Shape muoto)
60    {
61        // luodaan uusi olio:
62        PhysicsObject uusiOlio = new PhysicsObject(50, 50);
63        uusiOlio.Shape = muoto;
64        uusiOlio.Position = new Vector(x, y);
65        uusiOlio.Color = vari;
66        uusiOlio.Tag = "pahis";
67        Add(uusiOlio);
68        return uusiOlio;
69    }
70
71}
Note: See TracBrowser for help on using the repository browser.