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

Revision 9141, 4.3 KB checked in by npo17_65, 2 years ago (diff)

Aseet toimii ja elamat toimii

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