1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| class vehicule.Vehicule implements Deplacable, Tracable {
static var NORD:Number = 90;
static var EST:Number = 0;
static var SUD:Number = -90;
static var OUEST:Number = 180;
static var nbVehicules:Number = 0;
static var tabFlotte:Array = [];
var nom:String;
private var vitesse:Number;
private var capaciteMax:Number;
private var capacite:Number = 0;
private var x:Number = 0, y:Number = 0;
function Vehicule(nom:String, vitesse:Number, capaciteMax:Number) {
this.nom = nom;
this.vitesse = vitesse;
this.capaciteMax = capaciteMax;
nbVehicules++;
tabFlotte.push(this);
}
static function listerFlotte() {
trace("La flotte comporte " + nbVehicules + " véhicules :");
for (var i:Number = 0; i < tabFlotte.length; i++) {
tabFlotte[i].tracer();
}
}
function deplacer(angle:Number, duree:Number):Void {
// 0 <= angle < 360 °
x += vitesse * Math.cos(angle * Math.PI / 180) * duree;
y += vitesse * Math.sin(angle * Math.PI / 180) * duree;
}
function remplir(nb:Number):Void {
capacite += nb;
capacite = Math.max(0, Math.min(capacite, capaciteMax));
}
function tracer():Void {
trace(nom + " contient " + capacite + " p. " +
"en (" + Math.round(x) + ", " + Math.round(y) + ")");
}
} |
Partager