source: 2016/27/OttoK/Survivetown/Survivetown/Survivetown/Survivetown.cs @ 7786

Revision 7786, 3.6 KB checked in by karkaite, 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 Survivetown : PhysicsGame
10{
11    Image olionKuva = LoadImage("pelikissa");
12    Image taustakuva = LoadImage("grassbackground");
13    Image pelaajankuva = LoadImage("mlgnorsurebornedv2");
14    Image jonnenkuva = LoadImage("jonne");
15    PhysicsObject pelaaja;
16    double nopeus = 1000;
17    bool sprint = false;
18    PhysicsObject jonne;
19
20    public override void Begin()
21    {
22        LuoKentta();
23        LisaaOhjaimet();
24        LuoJonne();
25        Tupruttelia();
26        //LuoPingviini();
27
28        Keyboard.Listen(Key.Left, ButtonState.Down,
29        LiikutaPelaajaa, null, new Vector(-nopeus, 0));
30        Keyboard.Listen(Key.Right, ButtonState.Down,
31        LiikutaPelaajaa, null, new Vector(nopeus, 0));
32        Keyboard.Listen(Key.Up, ButtonState.Down,
33        LiikutaPelaajaa, null, new Vector(0, nopeus));
34        Keyboard.Listen(Key.Down, ButtonState.Down,
35        LiikutaPelaajaa, null, new Vector(0, -nopeus));
36
37        Keyboard.Listen(Key.LeftShift, ButtonState.Down, () => { sprint = true; }, "juokse");
38        Keyboard.Listen(Key.LeftShift, ButtonState.Released, () => { sprint = false; }, "");
39    }
40    void LuoKentta()
41    {
42        IsFullScreen = false;
43
44        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttav2");
45        ruudut.SetTileMethod(Color.Red, LuoPelaaja);
46        ruudut.SetTileMethod(Color.Black, LuoTaso);
47        ruudut.SetTileMethod(new Color(255, 216, 0), LuoPingviini);
48        ruudut.Execute(20, 20);
49
50        Level.Size = new Vector(4000, 4000);
51        Level.CreateBorders();
52        Level.Background.Image = taustakuva;
53        Level.Background.FitToLevel();
54    }
55    void LisaaOhjaimet()
56    {
57        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
58        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");     
59    }
60    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
61    {
62        pelaaja = new PhysicsObject(80, 50);
63        pelaaja.LinearDamping = 0.9;
64        pelaaja.Image = pelaajankuva;
65        pelaaja.CanRotate = false;
66        Add(pelaaja);
67        Camera.Follow(pelaaja);
68    }
69    void LuoTaso(Vector paikka, double leveys, double korkeus)
70    {
71        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
72        taso.Position = paikka;
73        taso.Color = Color.Black;
74        taso.CollisionIgnoreGroup = 1;
75        Add(taso);
76    }
77
78    void LiikutaPelaajaa(Vector vektori)
79    {   if(sprint)
80        {
81            pelaaja.Push(vektori * 2);
82            return;
83        }
84        pelaaja.Push(vektori);
85    }
86    void VaihdaNopeus()
87    {
88    }
89    void LuoPingviini(Vector paikka, double x, double y)
90    {
91        PhysicsObject pingviini = new PhysicsObject(70, 50);
92        pingviini.Shape = Shape.Circle;
93        pingviini.Color = Color.Red;
94        pingviini.Position = paikka;
95        pingviini.CanRotate = false;
96        Add(pingviini);
97    }
98    void LuoJonne()
99    {
100        jonne = new PhysicsObject(250, 250);
101        jonne.Position = new Vector(0, -1500);
102        jonne.CanRotate = false;
103        jonne.Image = jonnenkuva;
104        Add(jonne);
105    }
106    void Tupruttelia()
107    {
108        Smoke savu = new Smoke();
109        savu.Position = jonne.Position;
110        Add(savu, 1);
111        Wind = new Vector(100, 20);
112        Timer savunsiirto = new Timer();
113        savunsiirto.Interval = 0.1;
114        savunsiirto.Timeout += delegate { savu.Position = jonne.Position; };
115        savunsiirto.Start();
116    }
117}
Note: See TracBrowser for help on using the repository browser.