1 pièce(s) jointe(s)
Implémenter un schéma de classes et d'interfaces
Voici le schéma suivant que je dois implémenter en ActionScript2 (.as) sous Macromedia Flash Professionnal 8.
Pour cela, j'ai créer 5fichiers ".as" qui sont les interfaces (Tracable, Deplacable, Deplacable3d, Flottable et Submersible) et que j'ai développé.
Egalement, 5fichiers ".as" représentant les classes (Vehicule, Vehicule3d, Avion, Bateau et SousMarin)
J'ai développé la classe Vehicule comme suit :
Code:
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) + ")");
}
} |
Quelqu'un pourrati-il m'aider pour développer la classe Vehicule3d que j'ai commencé mais je ne sais pas comment faire, je ne suis qu'une simple débutante
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| import vehicule.Vehicule;
class vehicule.Vehicule3d extends Vehicule implements Deplacable3d {
function Deplacer3d(theta:Number, phi:Number, duree:Number):Void {
var r:Number = vitesse * duree;
if ( z >= 0 ) {
super.deplacer3d();
}
else {
trace("L'avion s'est crashé aux coordonnées (" + Math.round(x) + ", " + Math.round(y) + ", " + Math.round(z) + ")");
}
} |