source: 2011/24/LeeviK/Pong/Pong/Pong/Peli.cs @ 1993

Revision 1993, 5.6 KB checked in by lesejuku, 8 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.Assets;
7using Jypeli.Controls;
8using Jypeli.Effects;
9using Jypeli.Widgets;
10
11public class Peli : PhysicsGame
12{
13    Vector nopeusYlos = new Vector(0, 200);
14    Vector nopeusAlas = new Vector(0, -200);
15
16    PhysicsObject pelaaja;
17    AssaultRifle pelaajanAse;
18    AssaultRifle pelaajanAse1;
19    AssaultRifle pelaajanAse2;
20    Label ammoNaytto;
21    Animation animaatio1;
22    Animation animaatio2;
23
24    public override void Begin()
25    {
26        LuoKentta();
27        AsetaOhjaimet();
28        ammoNaytto = LuoNaytto(Screen.Left + 60, Screen.Top - 60, pelaajanAse.Ammo);
29        AloitaPeli();
30        Mouse.IsCursorVisible = true;
31        Mouse.ListenMovement(0.1, KuunteleLiiketta, null);
32        Image[] pelaajankuvat = LoadImages("jenkki lataus1", "jenkki lataus2", "jenkki lataus3", "jenkki lataus4", "jenkki lataus3", "jenkki lataus2", "jenkki lataus1", "jenkki lataus5", "jenkki lataus6", "jenkki lataus5");
33        Image[] pelaajankuvat2 = LoadImages("jenkki2");
34        animaatio1 = new Animation(pelaajankuvat);
35        animaatio2 = new Animation(pelaajankuvat2);
36        pelaaja.Animation = animaatio1;
37        pelaaja.Animation.FPS = 10;
38        PhysicsObject natsi = new PhysicsObject(40, 40);
39        natsi.Shape = Shape.Circle;
40        Add(natsi);
41        Image natsinKuva = LoadImage("NATSI");
42        natsi.Image = natsinKuva;
43        natsi.Width = 155;
44        natsi.Height = 120;
45        FollowerBrain natsinAivot = new FollowerBrain();
46        natsinAivot.Target = pelaaja;
47        natsinAivot.TargetFollowDistance = 100;
48        natsinAivot.Speed = 300;
49        natsinAivot.TargetClose += mitaTapahtuuKunOllaanLahella;
50        natsinAivot.FollowAlways = true;
51 
52       
53                                                                                               
54        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, "Liikuta pelaajaa vasemmalle", new Vector(-1000, 0));
55        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, new Vector(1000, 0));
56        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 1000));
57        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -1000));
58        Mouse.Listen(MouseButton.Left, ButtonState.Down, AmmuAseella, "Ammu", pelaaja, pelaajanAse);
59        Keyboard.Listen(Key.D1, ButtonState.Down, VaihdaAse, "VaihdaAse", pelaaja, pelaajanAse1);
60        Keyboard.Listen(Key.D2, ButtonState.Down, VaihdaAse, "VaihdaAse", pelaaja, pelaajanAse2);
61    }
62
63    void LiikutaPelaajaa(Vector kakkakasa)
64    {
65        pelaaja.Push(kakkakasa);
66    }
67
68    void LuoKentta()
69    {
70        pelaaja = new PhysicsObject(200.0, 200.0);
71        pelaaja.Shape = Shape.Circle;
72        pelaaja.X = -200.0;
73        pelaaja.Y = 0.0;
74        pelaaja.Restitution = 0.7;
75        pelaaja.AngularDamping = 0.7;
76        pelaaja.LinearDamping = 0.9;
77        pelaaja.KineticFriction = 0.0;
78        Add(pelaaja);
79        pelaaja.Image = LoadImage("jenkki");
80        pelaajanAse1 = new AssaultRifle(20, 0);
81        pelaajanAse = pelaajanAse1;
82        pelaaja.Add(pelaajanAse);
83        pelaajanAse.Ammo.Value = 30;
84        pelaajanAse.Ammo.MinValue = 0;
85        pelaajanAse.Ammo.LowerLimit += LataaAse;
86        pelaajanAse.ProjectileCollision = AmmusOsui;
87
88        pelaajanAse2 = new AssaultRifle(20, 0);
89        pelaaja.Add(pelaajanAse2);
90        pelaajanAse2.Ammo.Value = 100;
91        pelaajanAse2.Ammo.MinValue = 0;
92        pelaajanAse2.Ammo.LowerLimit += LataaAse;
93        pelaajanAse2.ProjectileCollision = AmmusOsui;
94
95
96        Level.BackgroundColor = Color.Green;
97        Level.CreateBorders();
98        Camera.Follow(pelaaja);
99    }
100
101    void LataaAse(int arvo)
102    {
103        Timer.SingleShot(1, LisaaAmmuksia);
104        pelaaja.Animation.Start();
105
106    }
107
108    void LisaaAmmuksia()
109    {
110        pelaajanAse.Ammo.Value += 30;
111        pelaaja.Animation.Stop();
112
113    }
114
115    Label LuoNaytto(double x, double y, IntMeter sidottavaLaskuri)
116    {
117        Label naytto = new Label();
118        naytto.BindTo(sidottavaLaskuri);
119        naytto.X = x;
120        naytto.Y = y;
121        naytto.TextColor = Color.White;
122        naytto.BorderColor = Level.BackgroundColor;
123        naytto.Color = Level.BackgroundColor;
124        Add(naytto);
125        return naytto;
126    }
127
128
129    void AloitaPeli()
130    {
131
132    }
133
134    void AsetaOhjaimet()
135    {
136        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
137        //Keyboard.Listen(Key.Left, ButtonState.Down,
138    }
139
140
141    void KuunteleLiiketta(AnalogState hiirenTila)
142    {
143        Vector suunta = (pelaaja.Position - Mouse.PositionOnWorld).Normalize();
144        Mouse.IsCursorVisible = true;
145        Vector hiirenLiike = hiirenTila.MouseMovement;
146        pelaaja.Angle = suunta.Angle + Angle.FromDegrees(180);
147
148    }
149
150    void AmmuAseella(PhysicsObject pelaaja, Weapon pelaajanAse)
151    {
152        PhysicsObject ammus = pelaajanAse.Shoot();
153       
154        if (ammus != null)
155        {
156            ammus.Size = new Vector(ammus.Width*5, ammus.Height * 2);
157        }
158
159    }
160
161    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
162    {
163        ammus.Destroy();
164        Explosion rajahdys = new Explosion(10);
165        rajahdys.Position = ammus.Position;
166        Add(rajahdys);
167    }
168    void mitaTapahtuuKunOllaanLahella(object lahettajaAivot, EventArgs e)
169    {
170       
171    }
172    void VaihdaAse(PhysicsObject pelaaja, Weapon ase)
173    {
174        pelaajanAse = (AssaultRifle)ase;
175    }
176}
Note: See TracBrowser for help on using the repository browser.