source: 2017/30/HugoE/HanniAndHoo/HanniAndHoo/HanniAndHoo/HanniAndHoo.cs @ 9128

Revision 9128, 3.9 KB checked in by npo17_65, 23 months ago (diff)

elämät hahmoilla

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class HanniAndHoo : PhysicsGame
10{
11    Image HanninKuva = LoadImage("Hanni");
12    Image HoonKuva = LoadImage("Hoo");
13
14
15
16
17    PlasmaCannon HanninAse;
18    Cannon HoonAse;
19
20
21    PeliUkko Hanni;
22    PeliUkko Hoo;
23
24    public override void Begin()
25    {
26        LuoKentta();
27        LuoPelaajat();
28        LuoNappaimet();
29
30    }
31
32    void LuoPelaajat()
33    {
34        Hanni = new PeliUkko(80.0, 80.0);
35        Hanni.X = Level.Left + 100.0;
36        Hanni.Y = 0.0;
37        Hanni.Shape = Shape.Circle;
38        Hanni.Color = Color.Blue;
39        Hanni.Image = HanninKuva;
40        Hanni.CanRotate = false;
41        Add(Hanni);
42        HanninAse = new PlasmaCannon(60, 20);
43        HanninAse.ProjectileCollision = AmmusOsui;
44        HanninAse.X += 50;
45        Keyboard.Listen(Key.S, ButtonState.Pressed, AmmuAseella, "Ammu", HanninAse);
46        Hanni.Weapon = HanninAse;
47        Hoo = new PeliUkko(100.0, 100.0);
48        Hoo.X = Level.Right - 100.0;
49        Hoo.Y = 0.0;
50        Hoo.Shape = Shape.Circle;
51        Hoo.Color = Color.Red;
52        Hoo.Image = HoonKuva;
53        Hoo.CanRotate = false;
54        Add(Hoo);
55        HoonAse = new Cannon(90, 30);
56        HoonAse.ProjectileCollision = AmmusOsui;
57        HoonAse.X += 80;
58        Hoo.Weapon = HoonAse;
59        Keyboard.Listen(Key.Down, ButtonState.Pressed, AmmuAseella2, "Ammu2", HoonAse);
60        HoonAse.Power.DefaultValue = 20000;
61        AddCollisionHandler(Hoo, Hanni, Tormaa);
62    }
63    void Tormaa(PhysicsObject tormaaja, PhysicsObject kohde)
64    {
65        kohde.Destroy;
66    }
67
68    void AmmusOsui(PhysicsObject Ammus, PhysicsObject Kohde)
69    {
70        Ammus.Destroy();
71    }
72    void LuoNappaimet()
73    {
74        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy, null, Hanni, 1000.0);
75        Keyboard.Listen(Key.D, ButtonState.Down, Kavely, null, Hanni, 500.0);
76        Keyboard.Listen(Key.A, ButtonState.Down, Kavely, null, Hanni, -500.0);
77        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppy, null, Hoo, 1000.0);
78        Keyboard.Listen(Key.Right, ButtonState.Down, Kavely, null, Hoo, 500.0);
79        Keyboard.Listen(Key.Left, ButtonState.Down, Kavely, null, Hoo, -500.0);
80        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
81
82    }
83    void LuoKentta()
84    {
85        Gravity = new Vector(0.0, -800.0);
86        Camera.Zoom(1.2);
87        PhysicsObject AlaReuna = Level.CreateBottomBorder(0.0, false);
88        PhysicsObject OikeaReuna = Level.CreateRightBorder(0.0, false);
89        PhysicsObject VasenReuna = Level.CreateLeftBorder(0.0, false);
90        PhysicsObject YläReuna = Level.CreateTopBorder(0.0, false);
91    }
92
93
94
95    void Kavely(PlatformCharacter tyyppi, double liikkumisenMaara)
96    {
97
98        tyyppi.Walk(liikkumisenMaara);
99
100    }
101    void Hyppy(PlatformCharacter tyyppi, double hypynMaara)
102    {
103        tyyppi.Jump(hypynMaara);
104    }
105
106    void AmmuAseella(PlasmaCannon HanninAse)
107    {
108        PhysicsObject Ammus = HanninAse.Shoot();
109        HanninAse.FireRate = 2;
110        if (Ammus != null)
111        {
112            Ammus.Size *= 3;
113            Ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
114        }
115
116    }
117
118    void AmmuAseella2(Cannon HoonAse)
119    {
120        PhysicsObject Ammus = HoonAse.Shoot();
121        HoonAse.FireRate = 1;
122        if (Ammus != null)
123        {
124            Ammus.Size *= 4;
125            Ammus.MaximumLifetime = TimeSpan.FromSeconds(4.0);
126        }
127
128    }
129
130
131
132
133}
134
135
136class PeliUkko : PlatformCharacter
137{
138    public IntMeter Elamalaskuri = new IntMeter(20, 0, 20);
139
140        public PeliUkko(double leveys, double korkeus)
141        : base(leveys, korkeus)
142    {
143        Elamalaskuri.LowerLimit += delegate { this.Destroy(); };
144    }   
145}
146
147
Note: See TracBrowser for help on using the repository browser.