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

Revision 9125, 4.1 KB checked in by npo17_65, 2 years ago (diff)

pyssyt toimivat ja liikkeet sekä animaatiot

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