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

Revision 8726, 6.1 KB checked in by npo17_16, 2 years ago (diff)

anim

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