 |
Jypeli
9
The simple game programming library
|
Siirry tämän tiedoston dokumentaatioon.
31 using System.Collections.Generic;
44 private List<PhysicsObject>
wheels =
new List<PhysicsObject>();
45 private List<IAxleJoint>
joints =
new List<IAxleJoint>();
54 get {
return base.Size; }
55 set {
throw new NotImplementedException(
"The size of the tank can not be changed." ); }
81 public Tank(
double width,
double height )
82 : base( width, height )
105 if ( pg ==
null )
throw new InvalidOperationException(
"Cannot have a tank in non-physics game" );
107 const int wheelCount = 6;
109 double r = this.Width / ( 2 * wheelCount );
110 double left = this.X - this.Width / 2 + r;
111 double[] wheelYPositions =
new double[wheelCount];
112 for (
int i = 0; i < wheelYPositions.Length; i++ )
113 wheelYPositions[i] = this.Y - this.Height / 2;
114 wheelYPositions[0] = wheelYPositions[wheelCount - 1] = this.
Position.
Y - ( this.Height * 3 / 8 );
116 for (
int i = 0; i < wheelCount; i++ )
122 wheel.
Body.AngularDamping = 0.95f;
127 Vector axlePos =
new Vector( left + i * ( this.Width / wheelCount ), wheelYPositions[i] );
138 foreach ( var j
in joints )
140 foreach ( var w
in wheels )
162 double realPower = power;
165 else if ( power < -1.0 )
168 double torque =
Mass * realPower * 3000;
170 foreach ( var w
in wheels )
172 w.Body.ApplyTorque( (
float)(torque /
wheels.Count) );
void Shoot(double power)
Ampuu halutulla voimalla.
Tank(double width, double height)
Alustaa uuden tankin.
override void Destroy()
Tuhoaa olion. Tuhottu olio poistuu pelistä.
Yksinkertainen tankki eli panssarivaunu.
Kantaluokka fysiikkapeleille.
void Add(IAxleJoint j)
Lisää liitoksen peliin.
IntMeter HitPoints
Tankin osumapisteet. Kun nämä menevät nollaan, tankki hajoaa.
DoubleMeter Power
Voima, jolla panos ammutaan. Nollautuu ammuttaessa.
Cannon Cannon
Tankin piippu.
Yksinkertainen tykki, joka ampuu kuulia tai muuta ammuksia.
static Game Instance
Käynnissä olevan pelin pääolio.
double KineticFriction
Liikekitka (hidastaa kun olio on jo liikkeessä). Ks. StaticFriction (lepokitka)
override Vector Size
Tankin koko. Tätä ei voi muuttaa.
IntMeter Ammo
Ammusten määrä.
PhysicsObject Shoot()
Ampuu aseella, ja palauttaa ammuksen tai null, jos ampuminen ei onnistu (esimerkiksi jos panokset ova...
void Add(Light light)
Lisää valon peliin. Nykyisellään valoja voi olla ainoastaan yksi kappale. Toistaiseksi ei tuettu Wind...
virtual Ignorer CollisionIgnorer
Olio, jolla voi välttää oliota osumasta tiettyihin muihin olioihin.
static Image LoadImageFromResources(string name)
Lataa kuvan Jypelin sisäisistä resursseista.
PhysicsObject(double width, double height, Shape shape, double x=0.0, double y=0.0)
Alustaa fysiikkaolion käyttöön.
double Force
Voima, jolla räjähdyksen paineaallon uloin reuna heittää olioita räjähdyksestä poispäin....
static readonly Ellipse Circle
Ympyrä tai ellipsi.
double Softness
Liitoksen pehmeys eli kuinka paljon sillä on liikkumavaraa.
static Shape FromImage(Image image)
Luo kuvion annetusta kuvasta. Kuvassa tulee olla vain yksi yhtenäinen muoto (toisin sanoen kuvio ei v...
void Accelerate(double power)
Kiihdyttää tankkia.
List< PhysicsObject > wheels
IntMeter Ammo
Panosten määrä.
Mittari, joka mittaa int-tyyppisiä arvoja. Sidottavissa näyttöihin, kuten ValueDisplay ja BarGauge...
List< IAxleJoint > joints
void Shoot()
Ampuu tankin tykillä, jos ammuksia on vielä jäljellä.
A collision ignorer that uses reference comparison. All Bodies with the same instance of this ignorer...
static readonly Color Gray
Harmaa.
double Mass
Olion massa (paino). Mitä enemmän massaa, sitä enemmän voimaa tarvitaan saamaan olio liikkeelle / pys...
TimeSpan TimeBetweenUse
Kuinka kauan kestää, että asetta voidaan käyttää uudestaan.