Je fais un jeu de combat en Flash et pendant que j'ai tout en marche, il me manque quelque chose: un écran de victoire/perte. Logiquement, je sais comment le faire:EventDispatcher entre un as et un fla?
if character.hp < 0
{
character.dead = true;
dispatchevent("death", event)
}
Mon problème est que je n'ai aucune idée de la façon de le coder. Je sais que je vais utiliser deux classes et mes deux fichiers .fla (sauf si je me trompe).
J'ai deux fichiers .fla qui sont en jeu ici: le fichier Menu.fla
et le fichier Arena.fla
. Menu.fla
contient la navigation complète du jeu, les options, les écrans de sélection de personnage, etc. et quand il est temps pour le joueur de s'engager dans la bataille, il charge le fichier Arena.fla
, qui contient seulement les arrière-plans (en fonction de l'étape sélectionnée) et maintenant est fixé à une longueur d'une seule trame. Pour Arena.fla
, l'action réelle se passe dans mes classes, mais logiquement, je n'aurais besoin que de HP.as
et Character.as
.
En Character.as
, je l'ai déclaré la variable suivante:
var isDead:Boolean = false; //is character dead?
En HP.as
, croire que je devrais avoir les éléments suivants:
if(currentHp<0)
{
currentHp = 0;
character.isDead = true; //declared as var `character:Object;`
EventDispatcher.dispatchEventListener("playerDead", playerDead);
}
Et enfin, dans Arena.fla
, je veux être en mesure de détecter l'eventlistener mentionné ci-dessus et passer simplement à une deuxième image qui affichera un message dans le style de "PLAYER ONE A WON" ou "PLAYER ONE HOST" avec un bouton qui me permettra de revenir au caractère sélecti À l'écran. C'est la première partie dans laquelle je suis bloqué: comment détecter l'écouteur d'événement distribué dans mon fichier .fla principal? Deuxièmement, si le joueur clique sur le bouton "CONTINUER", qui affiche indépendamment du fait que le joueur a gagné ou perdu, comment mon Menu.fla
(qui charge le Arena.swf
) détecte-t-il cet événement de clic, décharge-t-il le jeu et retourne-t-il? à l'écran de sélection de personnage?
Merci d'avance de m'avoir aidé. Je réalise que c'est beaucoup de texte mais c'est le plus descriptif que je puisse être. Si vous avez des questions ou besoin d'éclaircissements concernant ma question, n'hésitez pas à prendre la parole.
-Christopher
Merci de votre aide, cela m'a mis dans la bonne direction. –