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

Revision 7853, 4.8 KB checked in by otoskinn, 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    Image pengunkuva = LoadImage("smokingpwenguin");
16    Image sytkarinkuva = LoadImage("sytkari");
17    PhysicsObject pelaaja;
18    double nopeus = 1000;
19    bool sprint = false;
20    PhysicsObject jonne;
21   
22
23    public override void Begin()
24    {
25        LuoKentta();
26        LisaaOhjaimet();
27        LuoJonne();
28        //LuoPingviini();
29
30        Keyboard.Listen(Key.Left, ButtonState.Down,
31        LiikutaPelaajaa, null, new Vector(-nopeus, 0));
32        Keyboard.Listen(Key.Right, ButtonState.Down,
33        LiikutaPelaajaa, null, new Vector(nopeus, 0));
34        Keyboard.Listen(Key.Up, ButtonState.Down,
35        LiikutaPelaajaa, null, new Vector(0, nopeus));
36        Keyboard.Listen(Key.Down, ButtonState.Down,
37        LiikutaPelaajaa, null, new Vector(0, -nopeus));
38
39        Keyboard.Listen(Key.LeftShift, ButtonState.Down, () => { sprint = true; }, "juokse");
40        Keyboard.Listen(Key.LeftShift, ButtonState.Released, () => { sprint = false; }, "");
41    }
42    void LuoKentta()
43    {
44        IsFullScreen = false;
45
46        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kenttav2");
47        ruudut.SetTileMethod(Color.Red, LuoPelaaja);
48        ruudut.SetTileMethod(Color.Black, LuoTaso);
49        ruudut.SetTileMethod(new Color(255, 216, 0), LuoPingviini);
50        ruudut.Execute(20, 20);
51
52        Level.Size = new Vector(4000, 4000);
53        Level.CreateBorders();
54        Level.Background.Image = taustakuva;
55        Level.Background.FitToLevel();
56    }
57    void LisaaOhjaimet()
58    {
59        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
60        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");     
61    }
62    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
63    {
64        pelaaja = new PhysicsObject(80, 50);
65        pelaaja.LinearDamping = 0.9;
66        pelaaja.Image = pelaajankuva;
67        pelaaja.IgnoresExplosions = true;
68        pelaaja.CanRotate = false;
69        Add(pelaaja);
70        AddCollisionHandler(pelaaja, "jonne", PelaajaTormasi);
71        Camera.Follow(pelaaja);
72    }
73    void LuoTaso(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        taso.Position = paikka;
77        taso.Color = Color.Black;
78        taso.CollisionIgnoreGroup = 1;
79        Add(taso);
80    }
81
82    void LiikutaPelaajaa(Vector vektori)
83    {   if(sprint)
84        {
85            pelaaja.Push(vektori * 2);
86            return;
87        }
88        pelaaja.Push(vektori);
89    }
90    void VaihdaNopeus()
91    {
92    }
93    void LuoPingviini(Vector paikka, double x, double y)
94    {
95        PhysicsObject pingviini = new PhysicsObject(100, 100);
96        pingviini.Shape = Shape.Circle;
97        pingviini.Color = Color.Red;
98        pingviini.Position = paikka;
99        pingviini.CanRotate = false;
100        pingviini.Image = pengunkuva;
101        Add(pingviini);
102    }
103    void LuoJonne()
104    {
105        jonne = new PhysicsObject(250, 250);
106        jonne.Position = new Vector(0, -1500);
107        jonne.CanRotate = false;
108        jonne.Tag = "jonne";
109        jonne.IgnoresExplosions = true;
110        jonne.Image = jonnenkuva;
111        jonne.Mass = 100000000;
112        Add(jonne);
113    }
114    void Tupruttelia()
115    {
116        Smoke savu = new Smoke();
117        savu.Position = jonne.Position;
118        Add(savu, 1);
119        Wind = new Vector(100, 20);
120        Timer savunsiirto = new Timer();
121        savunsiirto.Interval = 0.1;
122        savunsiirto.Timeout += delegate { savu.Position = jonne.Position; };
123        savunsiirto.Start();
124    }
125    void LuoSytkari()
126    {
127        PhysicsObject sytkari = new PhysicsObject(250, 300);
128        sytkari.Image = sytkarinkuva;
129        sytkari.Position = jonne.Position;
130        Add(sytkari,1);
131        sytkari.CanRotate = false;
132        sytkari.Mass = 10000;
133        sytkari.MaximumLifetime = TimeSpan.FromSeconds(1);   
134        Tupruttelia();
135        sytkari.Destroyed += delegate ()
136        {
137            LuoRajahdys(jonne.Position);
138            jonne.Tag = "jonne";
139        };
140    }
141 
142    void PelaajaTormasi(PhysicsObject pelaaja, PhysicsObject jonne)
143    {
144        jonne.Tag = "";
145        Timer.SingleShot(1.0, LuoSytkari);
146       
147    }
148    void LuoRajahdys(Vector paikka)
149    {
150        Explosion rajadys = new Explosion(150);
151        rajadys.Position = paikka;
152        Add(rajadys, 1);
153    }
154   
155}
Note: See TracBrowser for help on using the repository browser.