IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 3 Discussion :

Créer un damier dans un jeu.


Sujet :

ActionScript 3

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Par défaut Créer un damier dans un jeu.
    Bonjour,

    Je suis débutant en programmation et j'ai besoin d'aide pour résoudre un problème :
    Je tente de créer un jeu avec Flash, dans le style Fire Emblem, c'est à dire un jeu de stratégie type échecs.
    Il y a donc un damier (une grille), une zone de déplacement (des carrés bleus) et une distance d'attaque maximale (des carrés rouges).
    Ces deux zones sont relatives à une capacité de mouvement.
    Par exemple, pour une capacité de mouvement de '3' et une distance d'attaque de '1' on obtient :

    Le joueur (positionné à la case verte) peut donc ce déplacer de 3 cases maximum et son attaque ne peut pas dépasser les carrés rouges.

    J'arrive actuellement, avec une méthode probablement barbare, à afficher les cases bleus horizontales et verticales ainsi que les diagonales, c'est à dire :

    Je ne vois pas comment faire pour afficher les autres carrés bleu en fonction de la capacité de mouvement.

    Sauriez vous comment faire ?
    Auriez vous une méthode plus simple pour afficher les carrés déjà présents?

    Le '.swf' est consultable ici (cliquez sur le carré bleu vers le centre pour faire apparaitre le personnage), le '.fla' est téléchargeable ici (Pour Flash Professional CS4) et le script est visible ici.

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    salut,

    interessant ton probleme ... j'ai jamais fait de jeux dans ce genre (a damier) mais la soluce ne doit pas être trop compliqué .


    si tu utilises un tableau 2D (x,y) pour gérer ton damier et la position des pieces, tu devrais pouvoir t'en sortir.
    tu sais que le déplacement total est de 3 pour cette piece, donc faut tester toutes les possibilités en ajoutant ou soustrayant cette valeur aux index (x,y)

    un gars a mis sur ce forum ya 2 a 3 semaines un super bout code qui devrait bien t'aider, je vais essayer de le retrouver.


    -------------
    voir les messages de david buff :
    http://www.developpez.net/forums/d65...oucle-tableau/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Par défaut
    Merci pour la réponse.
    Je n'y ai pas trouvé mon bonheur, bien qu'il s'y trouve peut être, mais c'est trop compliqué pour mon niveau actuel.

    En fait, c'est plus un problème de math que de programmation...

    J'ai créé un tableau/damier avec un double for :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	for (var Ordonnee:int = 0; Ordonnee < 25; Ordonnee += 1) {
    		for (var Abscisse:int = 0; Abscisse < 25; Abscisse += 1) {
    			var Case:dalle = new dalle();
    			addChild(Case);
    			Position[Ordonnee+";"+Abscisse]=Case;
    			Position[Ordonnee+";"+Abscisse].x=32*Ordonnee;
    			Position[Ordonnee+";"+Abscisse].y=24*Abscisse;
    		}
    	}
    Je vais voir si ça m'avance un peu...
    Ca pourrait si j'arrivais à utiliser le tableau pour repérer le joueur et le déplacer.


    EDIT:

    Résolu avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    	for (var ordonnee:int = 0; ordonnee < PJ[movemaxi]; ordonnee  +=1) {
    		for (var abscisse:int = 0; abscisse < (PJ[movemaxi] - ordonnee); abscisse  +=1) {
     
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BD"] = new casebleu();
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BD"].x = PJ[PJ_Team.text].x + (32 * abscisse);
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BD"].y= PJ[PJ_Team.text].y + (24 * ordonnee);
    			addChild(Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BD"]);
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BD"].addEventListener(MouseEvent.CLICK, deplacement );
     
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HG"] = new casebleu();
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HG"].x = PJ[PJ_Team.text].x - (32 * abscisse);
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HG"].y= PJ[PJ_Team.text].y - (24 * ordonnee);
    			addChild(Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HG"]);
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HG"].addEventListener(MouseEvent.CLICK,deplacement);
     
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HD"] = new casebleu();
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HD"].x = PJ[PJ_Team.text].x + (32 * abscisse);
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HD"].y= PJ[PJ_Team.text].y - (24 * ordonnee);
    			addChild(Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HD"]);
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"HD"].addEventListener(MouseEvent.CLICK, deplacement );
     
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BG"] = new casebleu();
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BG"].x = PJ[PJ_Team.text].x - (32 * abscisse);
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BG"].y= PJ[PJ_Team.text].y + (24 * ordonnee);
    			addChild(Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BG"]);
    			Tableau_Cases_Bleu[ordonnee+";"+abscisse+"BG"].addEventListener(MouseEvent.CLICK, deplacement );
     
    		}
    	}
    Merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer un nouveau champ dans le jeu de résultat ?
    Par tintin72 dans le forum Débuter
    Réponses: 4
    Dernier message: 09/09/2010, 11h30
  2. [Plugin] Créer un Canvas dans un EditorPart
    Par Cyrion dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 07/04/2005, 15h31
  3. Réponses: 6
    Dernier message: 04/11/2004, 17h35
  4. Comment créer une Table dans 1 Bdd ACCESS avec Builder??
    Par makandja dans le forum C++Builder
    Réponses: 6
    Dernier message: 17/03/2004, 20h21
  5. Créer une série dans un chart
    Par cyrose dans le forum C++Builder
    Réponses: 5
    Dernier message: 28/11/2002, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo