source: 2017/24/JuhaniP/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 8571

Revision 8571, 4.3 KB checked in by npo17_5, 2 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 FysiikkaPeli1 : PhysicsGame
10{
11    Vector nopeusYlos = new Vector(0, 200);
12    Vector nopeusAlas = new Vector(0, -200);
13
14    Image taustaKuva = LoadImage("Sahara");
15
16    AssaultRifle sniperAse;
17    PhysicsObject sniper;
18    public override void Begin()
19    {
20        LuoAikaLaskuri();
21
22
23
24        PhysicsObject maali = new PhysicsObject(40.0, 40.0);
25        maali.Shape = Shape.Circle;
26        maali.Color = Color.Harlequin;
27        maali.Color = Color.Black;
28        maali.X = 500.0;
29        maali.Y = 0.0;
30        Add(maali);
31
32        Level.Background.Image = taustaKuva;
33        Level.CreateBorders(6.0, false);
34
35        Timer ajastin = new Timer();
36        ajastin.Interval = 1.5;
37        ajastin.Timeout += Lisaamaali;
38        ajastin.Start();
39
40
41        PhysicsObject tuhoaja = new PhysicsObject(60.0, 60.0);
42        tuhoaja.Shape = Shape.Circle;
43        tuhoaja.Color = Color.DarkRed;
44        tuhoaja.X = 0.0;
45        tuhoaja.Y = 200.0;
46        Add(tuhoaja);
47
48        PhysicsObject luoti = new PhysicsObject(15.0, 7.0);
49        luoti.Color = Color.DarkRed;
50        luoti.X = 700.0;
51        luoti.Y = 0.0;
52
53
54        Vector impulssi = new Vector(500.0, 0.0);
55        maali.Hit(impulssi);
56        tuhoaja.Hit(impulssi);
57
58        sniper = new PhysicsObject(150, 60.0);
59        sniper.X = -400.0;
60        sniper.Y = 0.0;
61        sniperAse = new AssaultRifle(120, 45);
62        //Ammusten määrä aluksi:
63        sniperAse.Ammo.Value = 100;
64        sniper.CanRotate = false;
65        sniper.Image = LoadImage("Sniper");
66        Add(sniper);
67        sniper.Add(sniperAse);
68
69        AsetaOhjaimet();
70    }
71    void AsetaOhjaimet()
72    {
73
74        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", sniperAse);
75        Keyboard.Listen(Key.W, ButtonState.Down, liikutasniper, "Pelaaja 1: Liikuta mailaa ylös", new Vector(0, 100));
76        Keyboard.Listen(Key.S, ButtonState.Down, liikutasniper, "Pelaaja 1: Liikuta mailaa alas", new Vector(0, -100));
77        Keyboard.Listen(Key.W, ButtonState.Released, liikutasniper, "Pelaaja 1: Liikuta mailaa ylös", new Vector(0, 0));
78        Keyboard.Listen(Key.S, ButtonState.Released, liikutasniper, "Pelaaja 1: Liikuta mailaa alas", new Vector(0, 0));
79        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
80    }
81    void AsetaNopeus(PhysicsObject sniper, Vector nopeus)
82    {
83        sniper.Velocity = nopeus;
84    }
85
86    void liikutasniper(Vector nopeus)
87    {
88        AsetaNopeus(sniper, nopeus);
89    }
90    void Lisaamaali()
91    {
92        PhysicsObject maali = new PhysicsObject(40.0, 40.0);
93        maali.Shape = Shape.Circle;
94        maali.Color = Color.Harlequin;
95        maali.Color = Color.Black;
96        maali.X = 500.0;
97        maali.Y = 0.0;
98        Add(maali);
99        Vector impulssi = new Vector(500.0, 0.0);
100        maali.Hit(impulssi);
101
102    }
103
104
105
106
107    void lisaatuhoaja()
108    {
109
110    }
111    void AmmuAseella(Weapon ase)
112    {
113        PhysicsObject ammus = ase.Shoot();
114
115        if (ammus != null)
116        {
117            //ammus.Size *= 3;
118            //ammus.Image = ...
119            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
120
121        }
122    }
123    DoubleMeter alaspainLaskuri;
124    Timer aikaLaskuri;
125
126    void LuoAikaLaskuri()
127    {
128        alaspainLaskuri = new DoubleMeter(120);
129
130        aikaLaskuri = new Timer();
131        aikaLaskuri.Interval = 0.1;
132        aikaLaskuri.Timeout += LaskeAlaspain;
133        aikaLaskuri.Start();
134
135        Label aikaNaytto = new Label();
136        aikaNaytto.TextColor = Color.White;
137        aikaNaytto.DecimalPlaces = 1;
138        aikaNaytto.BindTo(alaspainLaskuri);
139        Add(aikaNaytto);
140    }
141
142    void LaskeAlaspain()
143    {
144        alaspainLaskuri.Value -= 0.1;
145
146        if (alaspainLaskuri.Value <= 0)
147        {
148            MessageDisplay.Add("Aika loppui...");
149            aikaLaskuri.Stop();
150
151            NaytaAlkuvalikko();
152        }
153    }
154
155    void NaytaAlkuvalikko()
156    {
157        ClearAll();
158        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
159"Aloita peli", "Parhaat pisteet", "Lopeta");
160        Add(alkuValikko);
161    }
162
163
164
165}
166
Note: See TracBrowser for help on using the repository browser.