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

Revision 1017, 2.8 KB checked in by hniemi, 10 years ago (diff)

Lisätty aloitusmenu ja järkevöitetty rakennetta.

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        public LisaData Data
37        {
38            get { return (LisaData)this.Tag; }
39            set { this.Tag = value; }
40        }
41       
42        /// <summary>
43        /// Luo aluksen
44        /// </summary>
45        /// <param name="width">Leveys</param>
46        /// <param name="height">Korkeus</param>
47        /// <param name="hp">Osumapisteet</param>
48        public Alus(double width, double height, int hp)
49            : base(width,height)
50        {
51            this.Shape = Shapes.Rectangle;
52            this.CanRotate = false;
53            this.IgnoresCollisionResponse = true;
54            this.IgnoresExplosions = true;
55            this.hp = new IntMeter(hp);
56            this.AddedToGame += LoadWeapon;
57
58            LisaData ase = new LisaData(); ;
59            ase.Damage = 1;
60            ase.Rajahtaa = false;
61            ase.Tyyppi = "oma";
62            this.Tag = ase;
63        }
64
65        private void LoadWeapon()
66        {
67            this.SetWeapon(new Beam(5, 35, Game.LoadImage("sade") ));
68        }
69
70        /// <summary>
71        /// Ottaa osumaa. Jos hp:t on loppu, tuhoaa aluksen
72        /// </summary>
73        /// <param name="damage"></param>
74        public void TakeHit(int damage)
75        {
76            Hp -= damage;
77            if (Hp <= 0) this.Destroy();
78        }
79
80
81        public void SetWeapon(Weapon ase) 
82        {
83            kaytossaOlevaAse = ase;
84        }
85
86        /// <summary>
87        /// Ampuu käytössä olevalla aseella
88        /// </summary>
89        public PhysicsObject Shoot()
90        {
91            PhysicsObject panos = kaytossaOlevaAse.Shoot();
92            if ( panos != null) { 
93                panos.Angle = this.Angle;
94            }
95            return panos;
96        }
97
98        /// <summary>
99        /// Ampuu silloin kun kutsutaan, timer-kutsuja varten
100        /// </summary>
101        /// <param name="sender">Ei käytössä</param>
102        public void Shoot(Timer sender)
103        {
104            this.Shoot();
105        }
106
107    }
108}
Note: See TracBrowser for help on using the repository browser.