source: 2015/23/AnttiH/Randomgen pallon väistely/Randomgen pallon väistely/Randomgen_pallon_väistely/Randomgen_pallon_väistely.cs @ 5873

Revision 5873, 3.5 KB checked in by sieerinn, 5 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 Randomgen_pallon_väistely : PhysicsGame
10{
11    bool peliKaynnissa = false;
12
13    private double liikkumisnopeus = 300;
14
15    PhysicsObject pelaaja1;
16    EasyHighScore topLista = new EasyHighScore();
17    Timer aikaLaskuri;
18
19    public override void Begin()
20    {
21        ClearAll();
22       
23        LuoAikaLaskuri();
24
25        pelaaja1 = new PhysicsObject(50, 50);
26        pelaaja1.Shape = Shape.Hexagon;
27        pelaaja1.Color = Color.Azure;
28        Add(pelaaja1);
29
30        AddCollisionHandler(pelaaja1, PelaajaTormasi);
31
32        Camera.Zoom(1);
33         
34        Timer ajastin = new Timer();
35        ajastin.Interval = 1.0;
36        ajastin.Timeout += LisaaPalloja;
37        ajastin.Start();
38
39        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, null, pelaaja1, new Vector(-liikkumisnopeus, 0));
40        Keyboard.Listen(Key.Left, ButtonState.Released, Liikuta, null, pelaaja1, Vector.Zero);
41        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, null, pelaaja1, new Vector(liikkumisnopeus, 0));
42        Keyboard.Listen(Key.Right, ButtonState.Released, Liikuta, null, pelaaja1, Vector.Zero);
43        Keyboard.Listen(Key.Down, ButtonState.Down, Liikuta, null, pelaaja1, new Vector(0, -liikkumisnopeus));
44        Keyboard.Listen(Key.Down, ButtonState.Released, Liikuta, null, pelaaja1, Vector.Zero);
45        Keyboard.Listen(Key.Up, ButtonState.Down, Liikuta, null, pelaaja1, new Vector(0, liikkumisnopeus));
46        Keyboard.Listen(Key.Up, ButtonState.Released, Liikuta, null, pelaaja1, Vector.Zero);
47
48        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
49
50        Level.CreateBorders(true);
51
52        peliKaynnissa = true;
53    }
54
55    void LisaaPalloja()
56    {
57        PhysicsObject pallo = new PhysicsObject(50, 50);
58        pallo.Shape = Shape.Circle;
59        if (RandomGen.NextInt(2) == 1)
60        { 
61            pallo.Position = RandomGen.NextVector(Level.Left, Level.Bottom, pelaaja1.Position.X - 50, pelaaja1.Position.Y - 50); 
62        }
63        else
64        {
65            pallo.Position = RandomGen.NextVector(Level.Right, Level.Top, pelaaja1.Position.X + 50, pelaaja1.Position.Y + 50);
66        }
67        Vector satunnainen = RandomGen.NextVector(-250, -250, 250, 250);
68        pallo.Restitution = 1.0;
69        pallo.Hit(satunnainen* RandomGen.NextInt(3, 5));
70        Add(pallo);
71    }
72
73    void Liikuta(PhysicsObject pelaaja, Vector suunta)
74    {
75        pelaaja.Velocity = suunta;
76    }
77
78    void PelaajaTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
79    {
80        MessageDisplay.Add("Pelaaja törmäsi!");
81        aikaLaskuri.Stop();
82        pelaaja1.Destroy();
83        topLista.HighScoreWindow.List.ScoreFormat = "{0:0.0}";
84        topLista.EnterAndShow(aikaLaskuri.CurrentTime);
85        topLista.HighScoreWindow.Closed += AloitaPeli;
86    }
87
88    public void AloitaPeli(Window sender)
89    {
90        Begin();
91    }
92
93    void LuoAikaLaskuri()
94    {
95        aikaLaskuri = new Timer();
96        aikaLaskuri.Interval = 500;
97        aikaLaskuri.Timeout += AikaLoppui;
98        aikaLaskuri.Start(1);
99
100        Label aikaNaytto = new Label();
101        aikaNaytto.TextColor = Color.Black;
102        aikaNaytto.DecimalPlaces = 1;
103        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
104        aikaNaytto.Y = 250;
105        Add(aikaNaytto);
106    }
107
108    void AikaLoppui()
109    {
110        MessageDisplay.Add("...");
111    }
112}
Note: See TracBrowser for help on using the repository browser.