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

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

Grafiikkaa lisätty
Aseen vaihtaminen EI TOIMI (kaataa pelin)

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