source: 2015/27/EemilI/infected - Copy/infected/infected/infected.cs @ 6671

Revision 6671, 3.5 KB checked in by eemikone, 4 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 infected : PhysicsGame
10{
11    PhysicsObject mies;
12    Image mieskuva = LoadImage("mieskuva");
13    Image seinakuva = LoadImage("seina");
14
15    public override void Begin()
16    {
17        LuoKentta();
18        kontrollit();
19        LuoAikaLaskuri();
20        MessageDisplay.Add("SELVIÄ MAHDOLLISIMMAN PITKÄÄN");
21        MessageDisplay.MessageTime = new TimeSpan(0, 0, 10);
22        MessageDisplay.TextColor = Color.White;
23        IsFullScreen = true;
24    }
25    void LuoHahmo(Vector paikka, double leveys, double korkeus)
26    {
27        mies = new PhysicsObject(mieskuva);
28        mies.Size = new Vector(50, 50);
29        mies.Position = paikka;
30        mies.LinearDamping = 0.1;
31        Add(mies);
32
33    }
34    void LuoKentta() 
35    {
36        ColorTileMap mappi = ColorTileMap.FromLevelAsset("mappi");
37        mappi.SetTileMethod(Color.Black, LuoTaso);
38        mappi.SetTileMethod(Color.Red, LuoHahmo);
39        mappi.Execute(40, 40);
40
41        Level.CreateBorders();
42        Camera.Follow(mies);
43        Camera.StayInLevel = true;
44        Camera.Zoom(1.0);
45    }
46
47    void LuoTaso(Vector paikka, double leveys, double korkeus)
48    {
49        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
50        taso.Position = paikka;
51        taso.Color = Color.Black;
52        taso.Image = seinakuva;
53        taso.CollisionIgnoreGroup = 1;
54        Level.Background.Color = Color.Black;
55        Add(taso);
56    }
57    void kontrollit()
58    {
59        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu ylos", 3000.0, 1);
60        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, "l", 3000.0, 2);
61        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, "l", 3000.0, 3);
62        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, "l", 3000.0,  4);
63        Mouse.ListenMovement(0.0, Tahtays, null);
64        Mouse.IsCursorVisible = true;
65        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "InfoIkkuna");
66        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
67    }
68    void LiikutaPelaajaa(double nopeus, int liikkuminen)
69    {
70        switch (liikkuminen)
71        {
72            case 1:
73                mies.Move(Vector.FromLengthAndAngle(nopeus, mies.Angle));
74                break;
75            case 2:
76                mies.Move(-Vector.FromLengthAndAngle(nopeus, mies.Angle));
77                break;
78            case 3:
79                mies.Move(Vector.FromLengthAndAngle(nopeus, mies.Angle - Angle.FromDegrees(90)));
80                break;
81            case 4:
82                mies.Move(Vector.FromLengthAndAngle(nopeus, mies.Angle - Angle.FromDegrees(-90)));
83                break;
84            default:
85                break;
86        }
87    }
88    void Tahtays(AnalogState hiirenTila)
89    {
90        Vector suunta = Mouse.PositionOnWorld - mies.Position;
91        mies.Angle = suunta.Angle;
92    }
93    void LuoAikaLaskuri()
94    {
95        Timer aikaLaskuri = new Timer();
96        aikaLaskuri.Start();
97
98        Label aikaNaytto = new Label();
99        aikaNaytto.X = Screen.Left + 100;
100        aikaNaytto.Y = Screen.Top  -100;
101        aikaNaytto.TextColor = Color.White;
102        aikaNaytto.DecimalPlaces = 1;
103        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
104        Add(aikaNaytto);
105    }
106
107}
Note: See TracBrowser for help on using the repository browser.