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

Revision 955, 2.5 KB checked in by hniemi, 10 years ago (diff)

Vihollisalus lisätty, Hudia paranneltu

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        public Weapon UsedWeapon { get { return kaytossaOlevaAse; } private set { } }
17
18        /// <summary>
19        /// Jos osumapiste-arvo on negatiivinen, tuhoaa aluksen.
20        /// </summary>
21        public int Hp
22        {
23            get{return hp.Value;}
24            set
25            {
26                hp.Value = value;
27                if (hp < 1) this.Destroy();
28            }
29        }
30
31        /// <summary>
32        /// Palauttaa viitteen hp-laskuriin
33        /// </summary>
34        public IntMeter HpMeter {get { return hp; }}
35
36        /// <summary>
37        /// Luo aluksen
38        /// </summary>
39        /// <param name="width">Leveys</param>
40        /// <param name="height">Korkeus</param>
41        /// <param name="hp">Osumapisteet</param>
42        public Alus(double width, double height, int hp)
43            : base(width,height)
44        {
45            this.kaytossaOlevaAse = new Beam(1, 1);
46            this.Shape = Shapes.Rectangle;
47            this.CanRotate = false;
48            this.IgnoresCollisionResponse = true;
49            this.IgnoresExplosions = true;
50            this.hp = new IntMeter(hp);
51        }
52
53        /// <summary>
54        /// Ottaa osumaa. Jos hp:t on loppu, tuhoaa aluksen
55        /// </summary>
56        /// <param name="damage"></param>
57        public void TakeHit(int damage)
58        {
59            Hp -= damage;
60            if (Hp <= 0) this.Destroy();
61        }
62
63
64        public void SetWeapon(Weapon ase) 
65        {
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        /// <summary>
81        /// Ampuu silloin kun kutsutaan, timer-kutsuja varten
82        /// </summary>
83        /// <param name="sender">Ei käytössä</param>
84        public void Shoot(Timer sender)
85        {
86            this.Shoot();
87            //PhysicsObject panos = kaytossaOlevaAse.Shoot();
88            //if (panos != null)
89            //{
90            //    panos.Angle = this.Angle;
91            //}
92        }
93
94    }
95}
Note: See TracBrowser for help on using the repository browser.