source: 2017/utsjoki/ÁndeN/msPaint/msPaint/msPaint/msPaint.cs @ 9133

Revision 9133, 4.5 KB checked in by otosjahn, 23 months ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.Assets;
7using Jypeli.Controls;
8using Jypeli.Effects;
9using Jypeli.Widgets;
10
11public class msPaint : PhysicsGame
12{
13    Image taustaKuva = LoadImage("tausta");
14
15    Vector nopeusYlos = new Vector(0, 7500);
16    Vector nopeusAlas = new Vector(0, -7500);
17    Vector nopeusVasen = new Vector(-7500, 0);
18    Vector nopeusOikea = new Vector(7500, 0);
19
20    PhysicsObject pelaaja1;
21    PhysicsObject pelaaja2;
22
23    PhysicsObject vasenReuna;
24    PhysicsObject oikeaReuna;
25    PhysicsObject ylaReuna;
26    PhysicsObject alaReuna;
27   
28
29    public override void Begin()
30    {
31        LuoKentta();
32        AsetaOhjaimet();
33
34       
35    }
36
37    void LuoRuutu(Vector paikka, double leveys, double korkeus)
38    {
39        GameObject ruutu = new GameObject(leveys, korkeus);
40        ruutu.Position = paikka;
41        ruutu.Color = Color.Transparent;
42        Add(ruutu);
43    }
44
45    void LuoKentta()
46    {
47        TileMap kentta = TileMap.FromLevelAsset("kentta");
48        kentta.SetTileMethod('x', LuoRuutu);
49        kentta.Execute(50, 50);
50
51        pelaaja1 = LuoPelaaja1(Level.Left + 20.0, 0.0);
52        pelaaja2 = LuoPelaaja2(Level.Right - 20.0, 0.0);
53
54        vasenReuna = Level.CreateLeftBorder();
55        vasenReuna.IsVisible = false;
56
57        oikeaReuna = Level.CreateRightBorder();
58        oikeaReuna.IsVisible = false;
59
60        ylaReuna = Level.CreateTopBorder();
61        ylaReuna.IsVisible = false;
62
63        alaReuna = Level.CreateBottomBorder();
64        alaReuna.IsVisible = false;
65
66        Level.Background.Image = taustaKuva;
67        Level.Background.TileToLevel();
68
69        Camera.ZoomToLevel();
70    }
71
72    PhysicsObject LuoPelaaja1(double x, double y)
73    {
74        PhysicsObject pelaaja1 = new PhysicsObject(60.0, 100.0);
75        pelaaja1.Shape = Shape.Rectangle;
76        pelaaja1.X = x;
77        pelaaja1.Y = y;
78        pelaaja1.LinearDamping = 0.4;
79        Add(pelaaja1);
80        pelaaja1.Image = LoadImage("pelaaja1");
81        pelaaja1.CanRotate = false;
82       
83
84        Timer ajastin = new Timer();
85        ajastin.Interval = 0.1;
86        ajastin.Timeout += delegate { Maalaa(pelaaja1); };
87        ajastin.Start();
88
89        return pelaaja1;
90    }
91
92    PhysicsObject LuoPelaaja2(double x, double y)
93    {
94        PhysicsObject pelaaja2 = new PhysicsObject(60.0, 100.0);
95        pelaaja2.Shape = Shape.Rectangle;
96        pelaaja2.X = x;
97        pelaaja2.Y = y;
98        pelaaja2.LinearDamping = 0.4;
99        Add(pelaaja2);
100        pelaaja2.Image = LoadImage("pelaaja2");
101        pelaaja2.CanRotate = false;
102
103        Timer ajastin = new Timer();
104        ajastin.Interval = 0.1;
105        ajastin.Timeout += delegate { Maalaa(pelaaja2); };
106        ajastin.Start();
107
108        return pelaaja2;
109    }
110
111    void Maalaa(PhysicsObject pelaaja)
112    {
113        GameObject ruutu = GetObjectAt(pelaaja.Position);
114        ruutu.Angle = pelaaja.Angle;
115       
116        if(pelaaja==pelaaja1)
117        {
118            ruutu.Image = LoadImage("splat1");
119        }
120        if (pelaaja == pelaaja2)
121        {
122            ruutu.Image = LoadImage("splat2");
123        }
124    }
125
126    void AsetaOhjaimet()
127    {
128        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, null, pelaaja1, nopeusYlos, Angle.FromDegrees(0));
129        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, null, pelaaja1, nopeusAlas, Angle.FromDegrees(180));
130        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, null, pelaaja1, nopeusVasen, Angle.FromDegrees(90));
131        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, null, pelaaja1, nopeusOikea, Angle.FromDegrees(270));
132
133        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, null, pelaaja2, nopeusYlos, Angle.FromDegrees(0));
134        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, null, pelaaja2, nopeusAlas, Angle.FromDegrees(180));
135        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, null, pelaaja2, nopeusVasen, Angle.FromDegrees(90));
136        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, null, pelaaja2, nopeusOikea, Angle.FromDegrees(270));
137
138        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
139        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
140       
141    }
142
143    void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus, Angle kulma)
144    {
145        pelaaja.Push(nopeus);
146        pelaaja.Angle = kulma;
147    }
148}
Note: See TracBrowser for help on using the repository browser.