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

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

Säteelle lisätty tekstuuri
Ampumista parannettu

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.Shape = Shapes.Rectangle;
44            this.CanRotate = false;
45            this.IgnoresCollisionResponse = true;
46            this.IgnoresExplosions = true;
47            this.hp = new IntMeter(hp);
48        }
49
50        /// <summary>
51        /// Ottaa osumaa. Jos hp:t on loppu, tuhoaa aluksen
52        /// </summary>
53        /// <param name="damage"></param>
54        public void TakeHit(int damage)
55        {
56            Hp -= damage;
57            if (Hp <= 0) this.Destroy();
58        }
59
60
61        public void SetWeapon(Weapon ase) 
62        {
63            if (kaytossaOlevaAse != null) kaytossaOlevaAse.Destroy();
64            ase.IsVisible = false;
65            this.Add(ase);
66            kaytossaOlevaAse = ase;
67        }
68
69        /// <summary>
70        /// Ampuu käytössä olevalla aseella
71        /// </summary>
72        public void Shoot()
73        {
74            PhysicsObject panos = kaytossaOlevaAse.Shoot();
75            if ( panos != null) { 
76                panos.Angle = this.Angle;
77            } 
78           
79        }
80
81    }
82}
Note: See TracBrowser for help on using the repository browser.