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

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