User Tag List

Page 1 of 2 1 2 LastLast
Results 1 to 10 of 12

Thread: Repositionnement d'objet après sa création en utilisant une variable

  1. #1
    Clicker Fusion 2.5

    Join Date
    Sep 2010
    Posts
    124
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Repositionnement d'objet après sa création en utilisant une variable

    Bonjour,
    (pardon d'avance si ce n'est pas le bon forum, ou si le sujet existe, je ne l'ai pas trouvé)

    Je suis sur un projet de jeu de type runner en 2d (comme Jetpack Joyride), et j'ai besoin de générer un décor (donc des obstacles actifs, masques etc...) au fur et à mesure que le personnage avance automatiquement (ou plutôt, au fur et à mesure que le décor sort par la gauche).
    La fonction création d'objet permet en effet de créer l'objet à une position fixe (constante) ou à une position relative à un objet (au personnage par exemple, ce qui serait vulgaire mais vous m'avez compris).

    Le problème c'est que je ne crois pas que l'on puisse relier ces fonctions à une variable.

    Voici un exemple :
    //l'objet "sol_1" est un morceau de décor (active object) ayant comme qualificateur : "devant de scène" (car en réalité il y a plusieurs "sol_x" disponibles, tous ont ce qualificateur), sa dimension est de 567x133;
    //admettons que le joueur commence en étant collé au bord gauche et bord bas de la fenêtre, et avance vers la droite sans jamais s'arrêter;
    //voici la ligne de l'évènement :
    -Lorsque "qualificateur devant de scène" se rapproche de plus de 0 pixels de la bordure de la fenêtre : créer "sol_1" relativement à la position du joueur en 567,0

    Et ça fonctionne, seulement, si jamais je décide de changer la dimension du "sol_1" alors je dois changer manuellement la position 567 dans l'éditeur d'évènement ? Et si j'ai 1000 objets "sol_x" différents pouvant être crées en étant choisi de manière aléatoire, la première fois je dois saisir toutes les valeurs une par une sans possibilité d'utiliser une variable et de copier l'évènement à tous les endroits dont j'ai besoin ?

    J'imagine que je m'y prend mal, pourtant je ne vois pour le moment pas d'autre solution ... En c++, j'utiliserais une variable "var_prochaine_position_objet_x" et "var_prochaine_position_objet_y", puis au moment de créer l'objet : je le placerais à la position "var_prochaine_position_objet_x" = "var_pos_x_personnage" + "var_taille_x_objet" (pour l'axe x seulement). Mais là ce n'est pas possible d'utiliser ces variables lors du placement/création de l'objet...

    J'ai pensé à créer l'objet hors de la scène, pour ensuite la placer à l'endroit où je veux en utilisant les variables, mais une fois que l'objet est crée et placé automatiquement, je perd son accès, je ne sais pas comme repositionner cet objet qui vient d'être crée.

    Merci d'avance pour votre aide.

    Question secondaire : la condition "se rapproche à plus de x pixels de la bordure de la fenêtre" ne peut-elle pas être précisée ? C'est à dire discerner la bordure gauche de la bordure droite / basse / haute ? Ou je m'y suis encore mal pris ? Car admettons que le "qualificateur devant de scène" tombe dans un trou vers le bas, donc dépassant la bordure basse de la fenêtre, à ce moment là je ne veux pas qu'un nouvel objet soit créer, car ceci n'indique pas que le personnage arrive dans une nouvelle "sous-scène" pour ainsi dire.

  2. #2
    Clickteam Clickteam

    Join Date
    Jun 2006
    Location
    France
    Posts
    13,631
    Mentioned
    229 Post(s)
    Tagged
    3 Thread(s)
    J'ai lu en diagonale mais quand on crée un objet cet objet est sélectionné et on peut faire un Set X / Y Position sur cet objet dans le même événement (à condition toutefois qu'il n'y ait pas eu d'autre objet du même type sélectionné par la ou les condition(s) de l'événement).

    Pour la question secondaire, il suffit peut-être simplement ajouter une condition pour comparer la position X et/ou Y du joueur par rapport au centre de l'écran? ( X Left Frame + X Right Frame ) / 2 et ( Y Top Frame + Y Bottom Frame ) / 2

  3. #3
    Clickteam Clickteam

    Join Date
    Jun 2006
    Location
    France
    Posts
    13,631
    Mentioned
    229 Post(s)
    Tagged
    3 Thread(s)
    Et oui le post devrait se trouver dans le forum Fusion 2.5, je le déplace.

  4. #4
    Clicker Fusion 2.5

    Join Date
    Sep 2010
    Posts
    124
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    EDIT :
    Merci pour ta réponse.

    Mais du coup, une fois que l'objet est crée, dans quelle colonne je met le set X,Y pour repositionner en utilisant une variable ? Dans la colonne du qualificateur de l'objet crée uniquement ? Je pensais qu'on ne pouvait discerner un certain objet de type qualificateur uniquement si le qualificateur en question était présent dans la condition, il s'avère que non, mon problème est réglé merci.
    Mais du coup ça m'intéresse, il y a t-il d'autres exceptions de ce type où l'on peut discerner un certain objet des autres possédant le même qualificateur ? Ou ce sont là les 2 seules possibilités : Quand le qualificateur se trouve dans la condition OU quand un objet de type qualificateur est crée.

    Merci encore.

  5. #5
    Clickteam Clickteam

    Join Date
    Jun 2006
    Location
    France
    Posts
    13,631
    Mentioned
    229 Post(s)
    Tagged
    3 Thread(s)
    Tout est une histoire de sélection.

    Les conditions sélectionnent les objets sur lesquels les actions sont effectuées. Au démarrage d'un événement, tous les objets sont sélectionnés et les conditions vont modifier cette liste (il y a une liste par type d'objet).

    Exemples:

    1. Always / Destroy Active 1

    Tous les objets Active 1 sont sélectionnés au départ de l'événement et la condition Always ne fait pas intervenir d'objets. L'action Destroy est appliquée sur tous les objets Active 1 sélectionnés, donc tous ceux sur le terrain.

    2. Alterable Value A ("Active 1") = 12 / Destroy Active 1

    Tous les objets Active 1 sont sélectionnés au départ mais la condition Compare Alterable Value va désélectionner ceux dont la valeur A n'est pas égale à 12. L'action Destroy est appliquée sur tous les objets Active 1 sélectionnés, donc tous ceux ayant la valeur 12.

    En principe les actions ne changent pas les listes d'objets sélectionnés, sauf l'action Create. Cette action sélectionne l'objet nouvellement créé pour que des actions sur cet objet puissent être effectuées (elle ajoute l'objet à la liste de sélection de ce type d'objet si des conditions avaient déjà sélectionnés certains de ces objets mais en général ça n'est pas le cas).

    En ce qui concerne les qualifieurs, c'est pareil, il faut simplement remplacer mentalement un qualifieur par tous les types d'objets ayant ce qualifieur.

  6. #6
    Clicker Fusion 2.5

    Join Date
    Sep 2010
    Posts
    124
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Merci, c'est plus clair. Problème réglé.

  7. #7
    Clicker Fusion 2.5

    Join Date
    Sep 2010
    Posts
    124
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Par contre du coup cela donne lieu à une nouvelle question :
    Admettons que j'ai un objet de type ActiveObject, nommé "active1" de qualificateur Z.
    Lorsque je crée cet objet, étant donné qu'il est rajouté dans la "liste", dans mon cas, il n'y a aucune différence entre placer l'objet via la colonne "active1" ou via la colonne "Z", non ? Comme tu l'as dis, si aucun autres objets n'est présent dans la condition, alors cela reviendra exactement au même dans tous les cas ?

  8. #8
    Clicker Fusion 2.5

    Join Date
    Sep 2010
    Posts
    124
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Message supprimé

  9. #9
    Clickteam Clickteam

    Join Date
    Jun 2006
    Location
    France
    Posts
    13,631
    Mentioned
    229 Post(s)
    Tagged
    3 Thread(s)
    Quote Originally Posted by Tessier View Post
    Par contre du coup cela donne lieu à une nouvelle question :
    Admettons que j'ai un objet de type ActiveObject, nommé "active1" de qualificateur Z.
    Lorsque je crée cet objet, étant donné qu'il est rajouté dans la "liste", dans mon cas, il n'y a aucune différence entre placer l'objet via la colonne "active1" ou via la colonne "Z", non ? Comme tu l'as dis, si aucun autres objets n'est présent dans la condition, alors cela reviendra exactement au même dans tous les cas ?
    Correct. Mais pour des raisons de performance autant changer la position de l'objet active1 si tu crées celui-là. Si tu exécutes cette action sur le qualifieur Z, le Set Position va examiner les listes de tous les types d'objets ayant ce qualifieur (même si ces listes sont vides sauf une ça fait des instructions exécutées pour rien). Bon, c'est juste pour chipoter, cette "optimisation" ne va pas changer la vitesse de l'appli mais bon, autant faire plus rapide si possible.

  10. #10
    Clicker Fusion 2.5

    Join Date
    Sep 2010
    Posts
    124
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Parfait c'est ce que je me demandais. Vu qu'il faut souvent faire des choix d'optimisation de ce type.

    Merci

Page 1 of 2 1 2 LastLast

Similar Threads

  1. Détruire un même objet l'un après l'autre
    By lolo2525 in forum Fusion 2.5
    Replies: 2
    Last Post: 26th November 2015, 06:51 AM
  2. Ciblage d'objet parent à la création d'un objet sur un autre
    By waw_demmon in forum Multimedia Fusion 2 - Technical Support
    Replies: 5
    Last Post: 10th April 2013, 03:39 AM
  3. Distinguer un objet juste après l'avoir créé ?
    By samcool_129 in forum Multimedia Fusion 2 - Technical Support
    Replies: 4
    Last Post: 10th August 2012, 05:12 PM
  4. Petit exemple variable globale objet
    By samuel in forum File Archive
    Replies: 0
    Last Post: 15th March 2009, 12:14 PM
  5. MMF2 et l'objet creation d'Ojets
    By anwer in forum Multimedia Fusion 2 - Technical Support
    Replies: 9
    Last Post: 25th October 2008, 03:22 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •