Пример #1
0
        private void newEx()
        {
            l1.Enabled = l2.Enabled = l3.Enabled = l4.Enabled = true;
            string r1, r2, r3, r4;

            Repere.Show();
            Repere.Controls.Clear();
            Dessin.DonnerValeur();
            Dessin.DonnerChoix(Dessin.AireRectangle.ToString(), out r1, out r2, out r3, out r4);
            Repere.CellPaint += tableLayoutPanel1_CellPaint;

            l1.Text = r1;
            l2.Text = r2;
            l3.Text = r3;
            l4.Text = r4;
            Label label1 = new Label();
            Label label2 = new Label();

            label1.Text      = (Dessin.rectangleWidth.ToString());
            label1.BackColor = Color.Transparent;
            label2.BackColor = Color.Transparent;
            label2.Text      = (Dessin.rectangleHeight.ToString());

            Repere.Controls.Add(label1, Dessin.initColumn + 1 + (Dessin.rectangleWidth) / 2, Dessin.initRow + Dessin.rectangleHeight + 1);
            Repere.Controls.Add(label2, Dessin.initColumn + Dessin.rectangleWidth + 1, Dessin.initRow + 1 + (Dessin.rectangleHeight) / 2);
            Repere.Refresh();
        }
Пример #2
0
    }     //PlacerPersoDansTableau

    /// <summary>
    /// Trouve un Repere (repere, teleport, etc.) qui correspond au type desire.
    /// Cette fonction est appelee par PlacerDansTableau (qui place le perso).
    /// </summary>
    /// <param name="typeRecherche">Le TypeRepere desire.</param>
    /// <returns>Retourne le premier Repere correspondant quelle trouve (ou null)</returns>
    private Repere TrouverUnRepere(TypeRepere typeRecherche)
    {
        Repere leRepere = null;

        //recherche tous les Reperes de la scene et les place dans un tableau:
        Repere[] lesReperes = ( Repere[] )FindObjectsOfType(typeof(Repere));
        foreach (Repere unRepere in lesReperes)
        {
            if (unRepere.typeRepere == typeRecherche)             //on a trouve le Repere souhaite
            {
                leRepere = unRepere;
                break;    //arret de la boucle
            }             //if
        } //foreach

        if (leRepere == null)
        {
            Debug.Log("Aucun Repere de type «" + typeRecherche + "» disponible.");
        } //if
        return(leRepere);
    }     //TrouverUnRepere
Пример #3
0
    }         //VerifierSiCombat

    /// <summary>
    /// Place le personnage principal dans le tableau.
    /// Pour determiner la position, cherche d'abord une porte qui correspond a la scene en memoire.
    /// Si elle trouve elle utilise la position du teleport de cette porte;
    /// sinon, elle utilise en priorite la position d'un repere, puis la position
    /// d'un autre teleport, en dernier recours elle utilise le centre du tableau.
    /// Finalement, elle commande le changement de position du perso.
    /// </summary>
    public void PlacerPersoDansTableau()
    {
        Transform leTeleport           = null;
        Transform unTeleportAlternatif = null;

        //Recherche d'un teleport du nom requis en examinant les differentes portes:
        foreach (Porte unePorte in FindObjectsOfType(typeof(Porte)))
        {
            if (unePorte.sceneDestination == Jeu.memNomScene)
            {
                //c'est la porte qui correspond a notre provenance
                if (unePorte.transform.childCount > 0)
                {
                    //on assume qu'il y a un teleport
                    leTeleport = unePorte.transform.GetChild(0);
                    //Debug.Log("Teleport trouvé!");
                }                 //if
                break;            //arret immediat de la boucle
            }
            else
            {
                //ce n'est pas la porte qui correspond a notre provenance
                if (unePorte.transform.childCount > 0)
                {
                    //on assume qu'il y a un teleport et on le note au cas ou on ne trouve pas
                    unTeleportAlternatif = unePorte.transform.GetChild(0);
                } //if
            }     //if+else
        }         //foreach

        Vector2 nouvellePos;

        if (leTeleport != null)
        {
            //si on a trouve un teleport, c'est la position souhaitee:
            nouvellePos = leTeleport.position;
        }
        else
        {
            string nomNouvelleScene = SceneManager.GetActiveScene().name; //identification du nom de la scene
            if (Jeu.memNomScene != null)                                  //on arrive d'une scene precedente, mais il n'y a aucune porte de retour:
            {
                Debug.Log("Attention, aucune porte ne permet de retourner à la scène " + Jeu.memNomScene + " dans la scène " + nomNouvelleScene + ".");
            }                                                       //(si Jeu.memNomScene est null, c'est la 1re scene du jeu)
            Repere unRepere = TrouverUnRepere(TypeRepere.POSITION); //Recherche d'un repere de position pour placer le perso
            if (unRepere != null)
            {
                //on a trouve un repere, on assume que c'est pour placer le perso
                Debug.Log("Le personnage est placé a la position du repère «" + unRepere.name + "».");
                nouvellePos = unRepere.transform.position;
            }
            else if (unTeleportAlternatif != null)
            {
                //si on a seulement un teleport qui ne correspond pas, on l'utilise quand meme
                Debug.Log("Un téléport alternatif est utilisé pour placer le personnage.");
                nouvellePos = unTeleportAlternatif.position;
            }
            else
            {
                //en dernier recours le perso est place au centre
                Debug.Log("Le personnage est placé au centre.");
                nouvellePos = Vector2.zero;
            }     //if+elseif+else
        }         //if+else
        //Repositionnement du perso:
        Jeu.perso.ReplacerPosition(nouvellePos);
    }     //PlacerPersoDansTableau