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.

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