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

Revision 8713, 5.6 KB checked in by npo17_10, 4 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 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
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
57        FollowerBrain seuraajanAivot = new FollowerBrain(hahmo);
58        Add(vihollinen);
59
60        vihollinen.Brain = seuraajanAivot;
61
62        seuraajanAivot.Speed = 80;
63        seuraajanAivot.DistanceFar = 600;
64        seuraajanAivot.DistanceClose = 40;
65        seuraajanAivot.StopWhenTargetClose = true;
66
67
68        seuraajanAivot.TargetClose += KunPaaseeLahelle;
69
70
71        Luopistelaskuri();
72
73        Add(hahmo);
74
75
76        LuoKentta();
77        // TODO: Kirjoita ohjelmakoodisi tähän();
78
79        Keyboard.Listen(Key.Left, ButtonState.Down, KavelytaPelaajaa, null, nopeusVasemmalle);
80        Keyboard.Listen(Key.Right, ButtonState.Down, KavelytaPelaajaa, null, nopeusOikealle);
81        Keyboard.Listen(Key.Up, ButtonState.Down, KavelytaPelaajaa, null, nopeusYlos);
82        Keyboard.Listen(Key.Down, ButtonState.Down, KavelytaPelaajaa, null, nopeusAlas);
83
84        Keyboard.Listen(Key.Left, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuVasemmalle);
85        Keyboard.Listen(Key.Right, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuOikealle);
86        Keyboard.Listen(Key.Up, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuYlos);
87        Keyboard.Listen(Key.Down, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuAlas);
88
89
90        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
91        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
92
93    }
94
95   
96   
97     
98   
99    void Ajastin()
100    {
101        Timer aikaLaskuri = new Timer(double aikaaKulunut = aikaLaskuri.SecondCounter..Value;);
102        aikaLaskuri.Start();
103
104        Label aikaNaytto = new Label();
105        aikaNaytto.TextColor = Color.White;
106        aikaNaytto.DecimalPlaces = 1;
107        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
108        Add(aikaNaytto);
109
110    }
111    void Luopistelaskuri()
112    {
113       pisteLaskuri = new IntMeter(0);
114     
115       Label pisteNaytto = new Label();
116       pisteNaytto.X = Screen.Left + 100;
117       pisteNaytto.Y = Screen.Top - 100;
118       pisteNaytto.TextColor = Color.White;
119       pisteNaytto.Color = Color.Black;
120     
121       pisteNaytto.BindTo(pisteLaskuri);
122       Add(pisteNaytto);
123     
124       if (Equals("vihu")) 
125       {
126           pisteLaskuri.Value += 1;
127       }
128       
129    }
130
131    void LuoKentta()
132    {
133
134
135        PhysicsObject ylareuna = Level.CreateTopBorder(0.0, true);
136        PhysicsObject alareuna = Level.CreateBottomBorder(0.0, true);
137        PhysicsObject vasenreuna = Level.CreateLeftBorder(0.0, true);
138        PhysicsObject oikeareuna = Level.CreateRightBorder(0.0, true);
139        //Level.CreateBorders(1.0, true);
140
141        Level.Background.Color = Color.Aqua;
142        Camera.Follow(hahmo);
143        Camera.Zoom(2.0);
144
145
146    }
147   
148    void Ammusosui(PhysicsObject ammus, PhysicsObject kohde)
149    {
150        ammus.Destroy();
151        if (kohde.Tag.Equals("vihu"))
152        {
153            kohde.Destroy();
154        }
155       
156    }
157
158    void Ammuaseella(AssaultRifle ase)
159    {
160        PhysicsObject ammus = ase.Shoot();
161
162        if (ammus != null)
163        {
164            ammus.Size *= 0.5;
165
166            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
167        }
168    }
169    void KunPaaseeLahelle()
170    {
171        hahmo.Destroy();
172    }
173    void KavelytaPelaajaa(Vector suunta)
174    {
175        hahmo.Velocity = suunta;
176        if (suunta.X < 0)
177        {
178            hahmonase.Angle = Angle.FromDegrees(180.0);
179            hahmo.Image = hahmonkuvavasemmalle;
180        }
181        if (suunta.X > 0)
182        {
183            hahmonase.Angle = Angle.FromDegrees(0.0);
184            hahmo.Image = hahmonkuvaoikealle;
185        }
186        if (suunta.Y > 0)
187        {
188            hahmonase.Angle = Angle.FromDegrees(90.0);
189            hahmo.Image = hahmonkuvatakaa;
190
191        }
192        if (suunta.Y < 0)
193        {
194            hahmonase.Angle = Angle.FromDegrees(270.0);
195        }
196
197       
198       
199           
200       
201
202    }
203}
Note: See TracBrowser for help on using the repository browser.