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

Revision 8686, 4.7 KB checked in by npo17_10, 2 years ago (diff)

pistellaskuri on tehty

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