source: 2010/23/hniemi/oksa/ShootEmUp/ShootEmUp/Alus.cs @ 1010

Revision 1010, 2.6 KB checked in by hniemi, 10 years ago (diff)

Ampuminen 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        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.Shape = Shapes.Rectangle;
46            this.CanRotate = false;
47            this.IgnoresCollisionResponse = true;
48            this.IgnoresExplosions = true;
49            this.hp = new IntMeter(hp);
50            this.AddedToGame += LoadWeapon;
51        }
52
53        private void LoadWeapon()
54        {
55
56            this.SetWeapon(new Beam(5, 35, Game.LoadImage("sade") ));
57        }
58
59        /// <summary>
60        /// Ottaa osumaa. Jos hp:t on loppu, tuhoaa aluksen
61        /// </summary>
62        /// <param name="damage"></param>
63        public void TakeHit(int damage)
64        {
65            Hp -= damage;
66            if (Hp <= 0) this.Destroy();
67        }
68
69
70        public void SetWeapon(Weapon ase) 
71        {
72            kaytossaOlevaAse = ase;
73        }
74
75        /// <summary>
76        /// Ampuu käytössä olevalla aseella
77        /// </summary>
78        public PhysicsObject Shoot()
79        {
80            PhysicsObject panos = kaytossaOlevaAse.Shoot();
81            if ( panos != null) { 
82                panos.Angle = this.Angle;
83            }
84            return panos;
85        }
86
87        /// <summary>
88        /// Ampuu silloin kun kutsutaan, timer-kutsuja varten
89        /// </summary>
90        /// <param name="sender">Ei käytössä</param>
91        public void Shoot(Timer sender)
92        {
93            this.Position = new Vector(0, 0);
94            Game.Add(this.Shoot());
95            //this.Shoot();
96        }
97
98    }
99}
Note: See TracBrowser for help on using the repository browser.