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

Revision 8663, 4.1 KB checked in by npo17_10, 2 years ago (diff)

Pelaaja voi ampua vihollisen.

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