source: 2010/23/hniemi/ShootEmUp/ShootEmUp/Alus.cs @ 897

Revision 897, 2.1 KB checked in by hniemi, 10 years ago (diff)

Aseenvaihto toimii

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6using Jypeli.ScreenObjects;
7using Jypeli.Assets;
8
9namespace ShootEmUp
10{
11    class Alus : PhysicsObject
12    {
13        private IntMeter hp;
14        private Weapon kaytossaOlevaAse;
15
16        /// <summary>
17        /// Jos osumapiste-arvo on negatiivinen, tuhoaa aluksen.
18        /// </summary>
19        public int Hp
20        {
21            get{return hp.Value;}
22            set
23            {
24                hp.Value = value;
25                if (hp < 1) this.Destroy();
26            }
27        }
28
29        /// <summary>
30        /// Palauttaa viitteen hp-laskuriin
31        /// </summary>
32        public IntMeter HpMeter {get { return hp; }}
33
34        /// <summary>
35        /// Luo aluksen
36        /// </summary>
37        /// <param name="width">Leveys</param>
38        /// <param name="height">Korkeus</param>
39        /// <param name="hp">Osumapisteet</param>
40        public Alus(double width, double height, int hp)
41            : base(width,height)
42        {
43            this.kaytossaOlevaAse = new Beam(1, 1);
44            this.Shape = Shapes.Rectangle;
45            this.CanRotate = false;
46            this.IgnoresCollisionResponse = true;
47            this.IgnoresExplosions = true;
48            this.hp = new IntMeter(hp);
49        }
50
51        /// <summary>
52        /// Ottaa osumaa. Jos hp:t on loppu, tuhoaa aluksen
53        /// </summary>
54        /// <param name="damage"></param>
55        public void TakeHit(int damage)
56        {
57            Hp -= damage;
58            if (Hp <= 0) this.Destroy();
59        }
60
61
62        public void SetWeapon(Weapon ase) 
63        {
64            kaytossaOlevaAse.IsVisible = false;
65            ase.IsVisible = true;
66            kaytossaOlevaAse = ase;
67
68        }
69
70        /// <summary>
71        /// Ampuu käytössä olevalla aseella
72        /// </summary>
73        public void Shoot()
74        {
75            PhysicsObject panos = kaytossaOlevaAse.Shoot();
76            if ( panos != null) { 
77                panos.Angle = this.Angle;
78            } 
79           
80        }
81
82    }
83}
Note: See TracBrowser for help on using the repository browser.