31 using System.ComponentModel;
46 public Cannon(
double width,
double height )
47 : base( width, height )
49 Power.DefaultValue = 15000;
50 TimeBetweenUse = TimeSpan.FromSeconds( 1 );
71 : base( width, height )
73 AmmoIgnoresGravity =
true;
74 Power.DefaultValue = 200;
75 TimeBetweenUse = TimeSpan.FromSeconds( 0.2 );
96 : base( width, height )
98 Power.DefaultValue = 6000;
99 AmmoIgnoresGravity =
true;
100 AmmoIgnoresExplosions =
true;
101 MaxAmmoLifetime = TimeSpan.FromSeconds( 0.7 );
105 TimeBetweenUse = TimeSpan.FromSeconds( 0.1 );
123 : base( width, height )
125 Power.DefaultValue = 500;
126 Ammo.DefaultValue = Int32.MaxValue;
127 AmmoIgnoresGravity =
true;
128 AmmoIgnoresExplosions =
true;
133 TimeBetweenUse = TimeSpan.FromSeconds( 0 );
154 : base( radius, 20,
"CannonBall" )
168 : base( radius, 0.2,
"Bullet" )
186 [Obsolete(
"Use Explosion.MaxRadius")]
187 public double ExplosionRadius
196 [Obsolete(
"Use Explosion.Speed" )]
197 public double ExplosionSpeed
206 [Obsolete(
"Use Explosion.Force" )]
207 public double ExplosionForce
216 public TimeSpan FuseTime {
get;
set; }
223 : this( radius, TimeSpan.FromSeconds( 3 ) )
232 public Grenade(
double radius, TimeSpan fuseTime )
233 : base( radius, 20,
"Grenade" )
245 if ( !IsAddedToGame )
253 [EditorBrowsable( EditorBrowsableState.Never )]
272 private int clusterlevel = 0;
277 public int NumberOfClusters {
get;
set; }
282 public Angle ClusterDirection {
get;
set; }
287 public double ClusterArc {
get;
set; }
298 Body.CollisionIgnorer =
new ObjectIgnorer();
299 NumberOfClusters = 3;
301 ClusterArc = Math.PI;
302 clusterlevel = cl - 1;
310 if ( !IsAddedToGame )
return;
317 for (
int i = 0; i < NumberOfClusters; i++ )
319 double currentRadius = Width / 2;
320 double r = currentRadius * 0.6;
322 Grenade g = ( clusterlevel > 0 ) ?
325 direction = ClusterDirection.Radians - ( ( i - NumberOfClusters / 2 ) * ClusterArc / NumberOfClusters );
328 g.
Position = this.Position + posOffset;
329 g.
Mass = this.Mass / NumberOfClusters;
336 g.
Body.CollisionIgnorer = this.Body.CollisionIgnorer;
Color Color
Väri, jonka värisenä olio piirretään, jos tekstuuria ei ole määritelty.
Explosion(Explosion src)
Luo uuden räjähdyksen entisen pohjalta.
Rypälepommi. Hajoaa räjähtäessään pienempiin osiin, jotka voivat edelleen räjähtää pienempiin osiin...
override PhysicsObject CreateProjectile()
Luo uuden ammuksen. Ylikirjoitetaan aliluokissa.
static Image LoadImageFromResources(string name)
static readonly Vector UnitX
Vaakasuuntainen yksikkövektori (pituus 1, suunta oikealle).
static readonly Color Green
Vihreä.
override PhysicsObject CreateProjectile()
Luo uuden ammuksen. Ylikirjoitetaan aliluokissa.
double ExplosionForce
Räjähdyksen voima.
Yksinkertainen tykki, joka ampuu kuulia tai muuta ammuksia.
static readonly Color Red
Punainen.
Suuntakulma (rajoitettu -180 ja 180 asteen välille) asteina ja radiaaneina. Tietoja kulmasta: http://...
CannonBall(double radius)
Alustaa uuden tykinkuulan.
TimeSpan SinceStartOfGame
Aika joka on kulunut pelin alusta.
double ExplosionRadius
Räjähdyksen säde.
override PhysicsObject CreateProjectile()
Luo uuden ammuksen. Ylikirjoitetaan aliluokissa.
Image Image
Olion kuva. Voi olla null, jolloin piirretään vain väri.
Peliolio, joka noudattaa fysiikkamoottorin määräämiä fysiikan lakeja. Voidaan kuitenkin myös laittaa ...
override void Explode()
Räjäyttää kranaatin sirpaleiksi.
static readonly Vector Zero
Nollavektori.
double Mass
Olion massa. Mitä suurempi massa, sitä suurempi voima tarvitaan olion liikuttamiseksi.
Sisältää tiedon ajasta, joka on kulunut pelin alusta ja viime päivityksestä.
ClusterGrenade(double radius, int cl)
Alustaa uuden rypälepommin.
static SoundEffect LoadSoundEffectFromResources(string name)
void Add(IGameObject o)
Lisää olion peliin. Tavalliset oliot tulevat automaattisesti kerrokselle 0 ja ruutuoliot päällimmäise...
LaserGun(double width, double height)
Alustaa uuden laser-tykin.
AssaultRifle(double width, double height)
Alustaa uuden rynnäkkökiväärin.
Cannon(double width, double height)
Alustaa uuden tykin.
Grenade(double radius)
Luo uuden kranaatin, joka räjähtää kolmen sekunnin päästä.
Peliluokka reaaliaikaisille peleille.
static Angle FromRadians(double radian)
Luo kulman annettujen radiaanien mukaan.
Grenade(double radius, TimeSpan fuseTime)
Luo uuden kranaatin.
double MaxRadius
Suurin säde, johon räjähdys voi kasvaa.
double ExplosionSpeed
Räjähdyksen nopeus.
Body Body
Fysiikkamoottorin käyttämä tietorakenne.
double Speed
Räjähdyksen leviämisnopeus (pikseliä sekunnissa)
PlasmaCannon(double width, double height)
Alustaa uuden plasmakiväärin.
TimeSpan FuseTime
Aika, jonka päästä ammus räjähtää itsestään.
override Vector Position
Olion paikka koordinaatistossa. Käsittää sekä X- että Y-koordinaatin.
virtual void Explode()
Räjäytä kranaatti.
override void Update(Time time)
Peliolion päivitys. Tätä kutsutaan, kun IsUpdated-ominaisuuden arvoksi on asetettu true ja olio on li...
override PhysicsObject CreateProjectile()
Luo uuden ammuksen. Ylikirjoitetaan aliluokissa.
double Force
Voima, jolla räjähdyksen paineaallon uloin reuna heittää olioita räjähdyksestä poispäin. Vihje: voit käyttää myös negatiivisia arvoja, jolloin räjähdys imee olioita sisäänsä.
virtual Vector Position
Olion paikka. Jos olio on jonkun toisen peliolion lapsi, paikka on suhteessa tämän vanhempaan (Parent...
Bullet(double radius)
Alustaa uuden luodin.