source: 2017/24/IlariI/piXgel GAmE/piXgel GAmE/piXgel_GAmE/piXgel_GAmE.cs @ 8721

Revision 8721, 5.7 KB checked in by npo17_10, 2 years ago (diff)

vihollis spawner on pian luotu.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class piXgel_GAmE : PhysicsGame
10{
11    AssaultRifle hahmonase;
12
13    Image hahmonkuva = LoadImage("hahmo");
14    Image hahmonkuvavasemmalle = LoadImage("hahmovasemmalle");
15    Image hahmonkuvatakaa = LoadImage("hahmotakaa");
16    Image hahmonkuvaoikealle = LoadImage("hahmooikealle");
17
18    IntMeter pisteLaskuri;
19    PhysicsObject vihollinen;
20
21    PhysicsObject hahmo;
22    Vector nopeusVasemmalle = new Vector(-100.0, 0.0);
23    Vector nopeusOikealle = new Vector(100.0, 0.0);
24    Vector nopeusYlos = new Vector(0.0, 100.0);
25    Vector nopeusAlas = new Vector(0.0, -100.0);
26
27    Vector pysahtuuVasemmalle = new Vector(0.0, 0.0);
28    Vector pysahtuuOikealle = new Vector(0.0, 0.0);
29    Vector pysahtuuYlos = new Vector(0.0, 0.0);
30    Vector pysahtuuAlas = new Vector(0.0, 0.0);
31
32    public override void Begin()
33    {
34        hahmo = new PhysicsObject(30, 30);
35        hahmo.CanRotate = false;
36        hahmo.Restitution = 0.0;
37        hahmo.Image = hahmonkuva; 
38        hahmonase = new AssaultRifle(30, 10);
39        hahmonase.Image = null; 
40        SmoothTextures = false;
41        hahmonase.Color = Color.Transparent;
42
43        hahmonase.ProjectileCollision = Ammusosui;
44        hahmo.Add(hahmonase);
45
46        Keyboard.Listen(Key.Space, ButtonState.Down, Ammuaseella, "Ammu", hahmonase);
47
48        PhysicsObject vihollinen = new PhysicsObject(40, 40);
49        vihollinen.CanRotate = false;
50        vihollinen.X = -300;
51        vihollinen.Y = -200;
52        vihollinen.Tag = "vihu";
53
54
55
56        FollowerBrain seuraajanAivot = new FollowerBrain(hahmo);
57        Add(vihollinen);
58
59        vihollinen.Brain = seuraajanAivot;
60
61        seuraajanAivot.Speed = 80;
62        seuraajanAivot.DistanceFar = 600;
63        seuraajanAivot.DistanceClose = 40;
64        seuraajanAivot.StopWhenTargetClose = true;
65
66
67        seuraajanAivot.TargetClose += KunPaaseeLahelle;
68
69
70        Luopistelaskuri();
71
72        Add(hahmo);
73
74        Timer vihollispawner = new Timer();
75        vihollispawner.Interval = 2.0;
76        vihollispawner.Timeout += LuoVihu;
77        vihollispawner.Start();
78
79
80        LuoKentta();
81        // TODO: Kirjoita ohjelmakoodisi tähän();
82
83        Keyboard.Listen(Key.Left, ButtonState.Down, KavelytaPelaajaa, null, nopeusVasemmalle);
84        Keyboard.Listen(Key.Right, ButtonState.Down, KavelytaPelaajaa, null, nopeusOikealle);
85        Keyboard.Listen(Key.Up, ButtonState.Down, KavelytaPelaajaa, null, nopeusYlos);
86        Keyboard.Listen(Key.Down, ButtonState.Down, KavelytaPelaajaa, null, nopeusAlas);
87
88        Keyboard.Listen(Key.Left, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuVasemmalle);
89        Keyboard.Listen(Key.Right, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuOikealle);
90        Keyboard.Listen(Key.Up, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuYlos);
91        Keyboard.Listen(Key.Down, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuAlas);
92
93
94        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
95        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
96
97    }
98
99   
100   
101     
102   
103    void Ajastin()
104    {
105        Timer aikaLaskuri = new Timer();
106        aikaLaskuri.Start();
107
108        Label aikaNaytto = new Label();
109        aikaNaytto.TextColor = Color.White;
110        aikaNaytto.DecimalPlaces = 1;
111        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
112        Add(aikaNaytto);
113
114    }
115
116    void LuoVihu()
117    {
118        Add(vihollinen);
119    }
120    void Luopistelaskuri()
121    {
122       pisteLaskuri = new IntMeter(0);
123     
124       Label pisteNaytto = new Label();
125       pisteNaytto.X = Screen.Left + 100;
126       pisteNaytto.Y = Screen.Top - 100;
127       pisteNaytto.TextColor = Color.White;
128       pisteNaytto.Color = Color.Black;
129     
130       pisteNaytto.BindTo(pisteLaskuri);
131       Add(pisteNaytto);
132     
133       if (Equals("vihu")) 
134       {
135           pisteLaskuri.Value += 1;
136       }
137       
138    }
139
140    void LuoKentta()
141    {
142
143
144        PhysicsObject ylareuna = Level.CreateTopBorder(0.0, true);
145        PhysicsObject alareuna = Level.CreateBottomBorder(0.0, true);
146        PhysicsObject vasenreuna = Level.CreateLeftBorder(0.0, true);
147        PhysicsObject oikeareuna = Level.CreateRightBorder(0.0, true);
148        //Level.CreateBorders(1.0, true);
149
150        Level.Background.Color = Color.Aqua;
151        Camera.Follow(hahmo);
152        Camera.Zoom(2.0);
153
154
155    }
156   
157    void Ammusosui(PhysicsObject ammus, PhysicsObject kohde)
158    {
159        ammus.Destroy();
160        if (kohde.Tag.Equals("vihu"))
161        {
162            kohde.Destroy();
163        }
164       
165    }
166
167    void Ammuaseella(AssaultRifle ase)
168    {
169        PhysicsObject ammus = ase.Shoot();
170
171        if (ammus != null)
172        {
173            ammus.Size *= 0.5;
174
175            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
176        }
177    }
178    void KunPaaseeLahelle()
179    {
180        hahmo.Destroy();
181    }
182    void KavelytaPelaajaa(Vector suunta)
183    {
184        hahmo.Velocity = suunta;
185        if (suunta.X < 0)
186        {
187            hahmonase.Angle = Angle.FromDegrees(180.0);
188            hahmo.Image = hahmonkuvavasemmalle;
189        }
190        if (suunta.X > 0)
191        {
192            hahmonase.Angle = Angle.FromDegrees(0.0);
193            hahmo.Image = hahmonkuvaoikealle;
194        }
195        if (suunta.Y > 0)
196        {
197            hahmonase.Angle = Angle.FromDegrees(90.0);
198            hahmo.Image = hahmonkuvatakaa;
199
200        }
201        if (suunta.Y < 0)
202        {
203            hahmonase.Angle = Angle.FromDegrees(270.0);
204        }
205
206       
207       
208           
209       
210
211    }
212}
Note: See TracBrowser for help on using the repository browser.