nbawoman
Messages postés2Date d'inscriptionjeudi 25 septembre 2008StatutMembreDernière intervention16 décembre 2008
-
16 déc. 2008 à 15:10
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 2013
-
16 déc. 2008 à 22:09
Bonjour,
Je suis en train de faire un puzzle en AS3 pour mes cours. Je débute en Action Script et je rencontre un problème pour afficher le score. Malgré des recherches et des essais, je n'ai pas réussi à résoudre mon problème et je demande donc de l'aide.
J'aimerais que le score augmente à chaque fois que le joueur ne place pas une pièce au bon endroit.
Mon puzzle fonctionne avec des classes. J'ai essayé de faire le score par un TextField et de l'incrémenter, mais en vain, j'ai toujours des erreurs (1061: Appel à la méthode addChild peut-être non définie, via la référence de type static int.).
Voici la définition des variables pour le score :
private var score:int=0;
private var scoreText:TextField;
Et voici le code pour le placement des pièces sur les bons trous et du score :
while (! trouve && i < listeTrous.length) {
if (ev.target.typePiece == listeTrous[i].typeTrou) {
if (! listeTrous[i].occupe) {
xp=ev.target.x;
yp=ev.target.y;
xt=listeTrous[i].abscisse;
yt=listeTrous[i].ordonnee;
dist=Math.sqrt(xp - xt * xp - xt + yp - yt * yp - yt);
trace(dist);
if (dist < listeTrous[i].marge) {
ev.target.x=listeTrous[i].abscisse;
ev.target.y=listeTrous[i].ordonnee;
pegase31
Messages postés6138Date d'inscriptiondimanche 21 décembre 2003StatutModérateurDernière intervention 4 septembre 201311 16 déc. 2008 à 15:30
Bonjour,
Alors, moi je lis :
private var score:int = 0; //Définis un int, c'est à dure un chiffre entier de valeur 0
private var scoreText:TextField; //définis une zone de texte
score.addChild(scoreText); //demande d'ajouter un objet de type "zone de texte" dans la liste d'affichage d'un "entier" ...
Or, un entier n'a pas de liste d'affichage car ce n'est pas un DisplayObject (contrairement au TextField).
nbawoman
Messages postés2Date d'inscriptionjeudi 25 septembre 2008StatutMembreDernière intervention16 décembre 2008 16 déc. 2008 à 22:00
D'accord. Mais j'avais fais un essai avec un simple bouton qui incrémente le score quand on clique dessus. Et cela fonctionne.
var score:int;
var scoreText:TextField;
scoreText = new TextField();
stage.addChild(scoreText);
scoreText.text = "score : 0";
clicButton.addEventListener(MouseEvent.CLICK, fonctionClic );
function fonctionClic( e:MouseEvent ) {
if (e.target==clicButton) {
scoreText.text = "score : "+(++score);
}
}
Il devrait y avoir aussi confrontation entre un entier et un DisplayObject, non ?