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

Revision 8707, 5.1 KB checked in by npo17_10, 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 piXgel_GAmE : PhysicsGame
10{
11    AssaultRifle hahmonase;
12
13    Image hahmonkuva = LoadImage("hahmo");
14    Image hahmonkuvavasemmalle = LoadImage("hahmovasemmalle");
15    Image hahmonkuvaoikealle = LoadImage("hahmooikealle");
16
17    IntMeter pisteLaskuri;
18
19
20    PhysicsObject hahmo;
21    Vector nopeusVasemmalle = new Vector(-100.0, 0.0);
22    Vector nopeusOikealle = new Vector(100.0, 0.0);
23    Vector nopeusYlos = new Vector(0.0, 100.0);
24    Vector nopeusAlas = new Vector(0.0, -100.0);
25
26    Vector pysahtuuVasemmalle = new Vector(0.0, 0.0);
27    Vector pysahtuuOikealle = new Vector(0.0, 0.0);
28    Vector pysahtuuYlos = new Vector(0.0, 0.0);
29    Vector pysahtuuAlas = new Vector(0.0, 0.0);
30
31    public override void Begin()
32    {
33        hahmo = new PhysicsObject(30, 30);
34        hahmo.CanRotate = false;
35        hahmo.Restitution = 0.0;
36        hahmo.Image = hahmonkuva; 
37        hahmonase = new AssaultRifle(30, 10);
38        hahmonase.Image = null; 
39        SmoothTextures = false;
40        hahmonase.Color = Color.Transparent;
41
42        hahmonase.ProjectileCollision = Ammusosui;
43        hahmo.Add(hahmonase);
44
45        Keyboard.Listen(Key.Space, ButtonState.Down, Ammuaseella, "Ammu", hahmonase);
46
47        PhysicsObject vihollinen = new PhysicsObject(40, 40);
48        vihollinen.CanRotate = false;
49        vihollinen.X = -300;
50        vihollinen.Y = -200;
51        vihollinen.Tag = "vihu";
52
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
75        LuoKentta();
76        // TODO: Kirjoita ohjelmakoodisi tähän();
77
78        Keyboard.Listen(Key.Left, ButtonState.Down, KavelytaPelaajaa, null, nopeusVasemmalle);
79        Keyboard.Listen(Key.Right, ButtonState.Down, KavelytaPelaajaa, null, nopeusOikealle);
80        Keyboard.Listen(Key.Up, ButtonState.Down, KavelytaPelaajaa, null, nopeusYlos);
81        Keyboard.Listen(Key.Down, ButtonState.Down, KavelytaPelaajaa, null, nopeusAlas);
82
83        Keyboard.Listen(Key.Left, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuVasemmalle);
84        Keyboard.Listen(Key.Right, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuOikealle);
85        Keyboard.Listen(Key.Up, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuYlos);
86        Keyboard.Listen(Key.Down, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuAlas);
87
88
89        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
90        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
91
92    }
93
94   
95   
96     
97   
98
99    void Luopistelaskuri()
100    {
101        pisteLaskuri = new IntMeter(0);
102
103        Label pisteNaytto = new Label();
104        pisteNaytto.X = Screen.Left + 100;
105        pisteNaytto.Y = Screen.Top - 100;
106        pisteNaytto.TextColor = Color.White;
107        pisteNaytto.Color = Color.Black;
108     
109        pisteNaytto.BindTo(pisteLaskuri);
110        Add(pisteNaytto);
111
112        if (Equals("vihu")) 
113        {
114            pisteLaskuri.Value += 1;
115        }
116       
117    }
118
119    void LuoKentta()
120    {
121
122
123        PhysicsObject ylareuna = Level.CreateTopBorder(0.0, true);
124        PhysicsObject alareuna = Level.CreateBottomBorder(0.0, true);
125        PhysicsObject vasenreuna = Level.CreateLeftBorder(0.0, true);
126        PhysicsObject oikeareuna = Level.CreateRightBorder(0.0, true);
127        //Level.CreateBorders(1.0, true);
128
129        Level.Background.Color = Color.Aqua;
130        Camera.Follow(hahmo);
131        Camera.Zoom(2.0);
132
133
134    }
135   
136    void Ammusosui(PhysicsObject ammus, PhysicsObject kohde)
137    {
138        ammus.Destroy();
139        if (kohde.Tag.Equals("vihu"))
140        {
141            kohde.Destroy();
142        }
143       
144    }
145
146    void Ammuaseella(AssaultRifle ase)
147    {
148        PhysicsObject ammus = ase.Shoot();
149
150        if (ammus != null)
151        {
152            ammus.Size *= 0.5;
153
154            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
155        }
156    }
157    void KunPaaseeLahelle()
158    {
159        hahmo.Destroy();
160    }
161    void KavelytaPelaajaa(Vector suunta)
162    {
163        hahmo.Velocity = suunta;
164        if (suunta.X < 0)
165        {
166            hahmonase.Angle = Angle.FromDegrees(180.0);
167            hahmo.Image = hahmonkuvavasemmalle;
168        }
169        if (suunta.X > 0)
170        {
171            hahmonase.Angle = Angle.FromDegrees(0.0);
172            hahmo.Image = hahmonkuvaoikealle;
173        }
174        if (suunta.Y > 0)
175        {
176            hahmonase.Angle = Angle.FromDegrees(90.0);
177
178
179        }
180        if (suunta.Y < 0)
181        {
182            hahmonase.Angle = Angle.FromDegrees(270.0);
183        }
184
185       
186       
187           
188       
189
190    }
191}
Note: See TracBrowser for help on using the repository browser.