source: 2017/24/TomasM/SpaceInvanders/SpaceInvanders/SpaceInvanders/SpaceInvanders.cs @ 8649

Revision 8649, 4.1 KB checked in by npo17_17, 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 SpaceInvanders : PhysicsGame
10{
11    IntMeter pistelaskuri;
12    PhysicsObject pelaaja;
13    PhysicsObject Pahis;
14    public override void Begin()
15    {
16        // TODO: Kirjoita ohjelmakoodisi tähän
17        LuoPelaaja();
18        LuoPahis();
19        LuoKlooni();
20        LuoKlooni();
21        LuoKlooni();
22        LuoKlooni();
23        LuoKlooni();
24        LuoKlooni();
25        LuoPistelaskuri();
26        TormaaTahteen();
27        LuoAikaLaskuri();
28        AikaLoppui();
29
30        IsMouseVisible = true;
31
32
33        Level.Background.Image = LoadImage ("tahtitaivas");
34        Level.Background.Size = Screen.Size;
35   
36
37        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-1000, 0));
38        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
39        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
40        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
41        Mouse.Listen(MouseButton.Left, ButtonState.Down,Tulta,null);
42
43
44        Level.Width = Screen.Width;
45        Level.Height = Screen.Height;
46        Level.CreateBorders();
47       
48        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
49    }
50    void LiikutaPelaajaa(Vector suunta)
51    {
52
53        pelaaja.Move(suunta);
54        pelaaja.Angle = suunta.Angle - Angle.RightAngle;
55
56       
57    }
58    void LuoPelaaja()
59    {
60
61        pelaaja = new PhysicsObject(75.0, 75.0);
62        pelaaja.Image = LoadImage("avaruusalus");
63        AddCollisionHandler(pelaaja, "pahapoika", BOOM);
64        pelaaja.Tag = "hyvapoika";
65
66
67
68        Add(pelaaja);
69
70
71
72       
73
74    }
75   
76    void BOOM(PhysicsObject pelaaja, PhysicsObject pahis)
77    {
78
79
80    }
81       void LuoPahis()
82    { //
83      //Pahis = new PhysicsObject(75.0, 75.0);
84      //
85      //Add(Pahis);
86      //Pahis.Image = LoadImage("ufokuva2");
87      //Pahis.X = -300.0;
88      //      Pahis.Y = 100.0;
89      //
90      //
91
92    }
93   
94   
95
96    void LuoKlooni()
97    {
98        PhysicsObject asteroidi = new PhysicsObject(100.0, 100.0);
99        asteroidi.Image = LoadImage("Asteroidi");
100        asteroidi.X = RandomGen.NextDouble(Level.Left,Level.Right);
101        asteroidi.Y = -RandomGen.NextDouble(Level.Top, Level.Bottom);
102        asteroidi.Tag = "pahapoika";
103        Add(asteroidi);
104
105    }
106    void LuoPistelaskuri()
107    {
108      // pistelaskuri = new IntMeter(0);
109      // Label pisteNaytto = new Label();
110      // pisteNaytto.X = Screen.Left + 100;
111      //         pisteNaytto.Y = Screen.Top - 100;
112      // pisteNaytto.TextColor = Color.Black;
113      // pisteNaytto.Color = Color.White;
114      // pisteNaytto.BindTo(pistelaskuri);
115      // Add(pisteNaytto);
116      // pistelaskuri.Value++;
117
118
119    }
120     void TormaaTahteen()
121    {
122     // PhysicsObject tahti = new PhysicsObject(150.0, 150.0);
123     // tahti.Image = LoadImage("tahti");
124     // tahti.X = -414.0;
125     // tahti.Y = 345.0;
126     // Add(tahti);
127     // pistelaskuri.Value++;
128
129        //hahmo.Destroy();
130
131       
132
133    }
134    void Tulta()
135    {
136        PhysicsObject ammus = new PhysicsObject(5,5);
137        Vector suunta = Mouse.PositionOnScreen - pelaaja.Position;
138        ammus.Velocity = suunta * 10;
139        ammus.IgnoresCollisionWith(pelaaja);
140        ammus.MaximumLifetime = new TimeSpan(0, 0, 0,5);
141        Add(ammus);
142
143
144    }
145    void LuoAikaLaskuri()
146    {
147        Timer aikaLaskuri = new Timer();
148        aikaLaskuri.Interval = 60;
149        aikaLaskuri.Timeout += AikaLoppui;
150        aikaLaskuri.Start(1);
151
152        Label aikaNaytto = new Label();
153        aikaNaytto.TextColor = Color.White;
154        aikaNaytto.DecimalPlaces = 1;
155        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
156        Add(aikaNaytto);
157    }
158
159    void AikaLoppui()
160    {
161        MessageDisplay.Add("Aika loppui...");
162
163        // täydennä mitä tapahtuu, kun aika loppuu
164    }
165}
Note: See TracBrowser for help on using the repository browser.